0


python selenium playwright库使用教程 破解网页防止开发者模式 Playwright

安装chromedriver

下载

chromedriver的版本一定要与Chrome的版本一致,不然就不起作用。

有两个下载地址:

1、http://chromedriver.storage.googleapis.com/index.html

2、CNPM Binaries Mirror

当然,你首先需要查看你的Chrome版本,在浏览器中输入chrome://version/

放chromedriver在chrome安装目录

默认目录一般为:C:\Program Files\Google\Chrome\Application

获取网页源码

from selenium import webdriver
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get(a[0])#填url
time.sleep(3)
b=browser.page_source
print(b)

XPATH获取元素

    content=browser.find_element(value='//*[@id="img-content"]',by=By.XPATH)
    print(content.text)

隐藏chrome

chrome_opts = webdriver.ChromeOptions()
chrome_opts.add_argument("--headless")
browser = webdriver.Chrome(options=chrome_opts)

最小化浏览器窗口

browser = webdriver.Chrome(options=chrome_opts)
browser.minimize_window()

点击元素 写入元素 生成随机字符串

ming=''.join(random.choice(string.ascii_letters+ string.digits) for _ in range(12))
print(ming)
browser.find_element(value='//*[@id="name"]', by=By.XPATH).send_keys(ming)
browser.find_element(value='//*[@id="email"]', by=By.XPATH).send_keys(ming+'@qq.com')

browser.find_element(value='//*[@id="imtype"]', by=By.XPATH).click()
time.sleep(1)
browser.find_element(value='/html/body/div[1]/div/section/div/div[6]/div/div/ul/li[2]/a', by=By.XPATH).click()

点击第一个谷歌搜索结果

browser.find_element(value='//*[@id="rso"]/div[1]/div/div[1]/div/div/div[1]/div/a/h3', by=By.XPATH).click()

Python往文件追加内容

f = open('test.txt', 'a')
f.write('Hello Everyone\n')
f.close()

Selenium设置页面超时时间-快速终止页面加载

当使用Selenium爬取一些页面时,有些页面加载速度特别慢,而我们又不需要等待页面完全加载完毕。
此时可以通过

driver.set_page_load_timeout()

来设置页面超时时间。
捕获异常,并执行js脚本

window.stop()

即可实现,代码如下。

from selenium import webdriver

driver = webdriver.Chrome()
driver.set_page_load_timeout(3)

try:
    driver.get('https://hk.louisvuitton.com/zht-hk/homepage')
    print('finish load ....')
except Exception:
    driver.execute_script('window.stop()')
    print(driver.title)
finally:
    driver.quit()

pj网页防止开发者模式

使用 CDP(Chrome Devtools-Protocol),您可以在 JS 文件(检测器)加载框架之前运行代码。因此,使用这些代码删除“webdriver True”属性:

Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    })

关键代码:

from selenium.webdriver import Chrome
driver = Chrome('D://chromedriver.exe')
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    })
  """
})
driver.get('http://pythonlearner.com')

但是,如果您现在将 Chrome 升级到 88。上面提到的方法将毫无用处。幸运的是,我们仍然有一个解决方案(添加此代码)

chrome_options.add_argument("--disable-blink-features=AutomationControlled")

Selenium-处理滑块验证码-openCV识别

opencv基础操作

#opencv基础操作
import cv2
#图像的基本操作
#图像的读取
#img cv2.imread(''")
#查看对应的像素
#img[120,120]
img[120,120]=[255,255,0]
#修改图像尺寸
resized=cv2.resize(img,(960,540))
#修改窗口尺寸
cv2.namedWindow("img",0)
cv2.resizeWindow("img",640,480)
#图像展示
#cv2.imshow('img',img)
#图像写入
cv2.imwrite('',img)
cv2.imencode('.jpg',img)[1].tofile('')
#等待用户按下任意键的时间
cv2.waitKey()#括号里的是时间,单位是ms
#销毁窗口
cv2.destroyAlLWindows()#销毁当前所有正在显示的窗口
#1、隐藏Chrome 正受到自动测试软件的控制
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
browser = webdriver.Chrome(options=chrome_options)

F12进入调试界面总是停留在Paused in debugger解决办法

有时候我们在某个界面点击F12后,页面会出现下面这样的按钮,导致无法对界面进行实时操作:
在这里插入图片描述
我使用的是edge浏览器,解决办法如下:
在这里插入图片描述
点击上面的禁止按钮,再点击一下页面上下面的按钮就可以了!
在这里插入图片描述

Playwright 为现代 web 应用提供了跨浏览器、快速且可靠的端到端的测试能力。 | Playwright 中文文档 | Playwright 中文网

参考:selenium 安装与 chromedriver安装 - Rogn - 博客园 (cnblogs.com)

标签: python

本文转载自: https://blog.csdn.net/m0_61634551/article/details/123973848
版权归原作者 O丶ne丨柒夜 所有, 如有侵权,请联系我们删除。

“python selenium playwright库使用教程 破解网页防止开发者模式 Playwright”的评论:

还没有评论