飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

playwright--自动化(三): 跳过检测 使用正常谷歌 指定用户数据 下载文件

时间:2022-01-05  作者:carl-  

首先上一个被拷贝的惨不忍睹 上一个是滑块验证[https://域名/carl-/p/域名]

还是前两天做一个商城后台爬虫,限制用户缓存,不能用谷歌开发版本,同时需要下载文件。

话不多说上代码[https://域名/carl-/p/域名]

import getpass
from 域名_api import sync_playwright
# 不出意外这个可以获取到你google的本地缓存文件
__USER_DATE_DIR_PATH__ = f"C:\\Users\\{域名ser()}\\AppData\Local\Google\Chrome\\User Data"

playwright = sync_playwright().start()
browser = 域名ch_persistent_context(
                    # 指定本机用户缓存地址
                    user_data_dir=__USER_DATE_DIR_PATH__,
                    # 指定本机google客户端exe的路径
                    executable_path=__EXECUTABLE_PATH__,
                    # 要想通过这个下载文件这个必然要开  默认是False
                    accept_downloads=True,
                    # 设置不是无头模式
                    headless=False,
                    bypass_csp=True,
                    slow_mo=10,
                    #跳过检测
                    args=[\'--disable-blink-features=AutomationControlled\']
                )

注意用这个方法启动的浏览器会自带一个页面存在,当然你还是可以重新再起一个

# 打开新页
page = 域名page()
# 访问谷歌首页
域名(\'https://域名\',wait_until=\'networkidle\',timeout=90000)
wait_until=\'networkidle\' 意思是 跳转过后再一定时间内没有网络请求链接
timeout 很好理解 超时时间90秒

js注入(用途的话是选择器选择元素用的,具体的js 你们自己写)

# 算是获得句柄吧
window_handle = 域名uate_handle("window")
# 选择元素
域名uate("域名ySelectorAll(\'#drrReportRangeTypeRadioMonthly\')[0].checked=true")
# 自带select选择 data自行补充
drrMonthlySelect = 域名_for_selector(\'//select[@id="drrMonthlySelect"]\')
域名ct_option(date)

接下来是下载操作

# 打开下载器
with 域名ct_download() as download_info:
  #找到你要下载的东西,找到点击的元素,点击
  域名_for_selector(\'//a[@id="sspa-reports:report-settings-page:-download-button"]\').click()
# 下载的东西
download = 域名e
# 下载的路径
域名()
# 下载的文件名
域名ested_filename
# 关闭页面
域名e()
# 关闭浏览器
域名()

剩下的操作 你想干啥干啥

# 补充几个
# 点击
域名k(\'//input[@id="signInSubmit"]\')
# 等待完成
域名_for_load_state("domcontentloaded")
# 输入
域名(\'//input[@id="ap_email"]\', user_str)
# 查找元素
域名_for_selector(\'//select[@id="drrMonthlySelect"]\')

标签:编程
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。