pyppeteer 开发记录

不管怎么对 selenium 的 webdriver 标识进行防御,selenium 爬取还是被识别了。。原因是 selenium 唤起浏览器需要通过 chromedriver.exe / geckodriver.exe 来唤起 谷歌 / 火狐,恰恰就是这些驱动导致 selenium 被识别,好家伙,反爬直接给你釜底抽薪了。网上也有去掉 webdriver 标识并反编译的 chromedriver.exe,但对于拿来党来说,系统环境、版本限制太大了,又不想花时间去搞这个反编译,就去找哪个能代替 selenium。福音来了~ puppeteer 简直就是为 chrome 浏览器自动化测试量身打造啊~~ pyppeteer 就是 python 版的 puppeteer。

安装和部署 pyppeteer 的教程网上有,这里不多说。

废话不多说,直接上 pyppeteer 的 scrapy 应用吧~

import pyppeteer
import asyncio
import logging
import random
import json
pyppeteer_level = logging.WARNING
logging.getLogger('pyppeteer').setLevel(pyppeteer_level)
logging.getLogger('websockets.protocol').setLevel(pyppeteer_level)
pyppeteer_logger = logging.getLogger('pyppeteer')
pyppeteer_logger.setLevel(logging.WARNING)
# 以上	代码作用是除了WARNING报错,浏览器操作就不显示在控制台了,控制台清爽多了~~
pyppeteer.DEBUG = False
# 一定一定要加下面代码,否则还是会反爬被识别出是自动化测试的
pyppeteer.launcher.AUTOMATION_ARGS.remove("--enable-automation")

class ProxyMiddleware(object):
    def random_region(self, start, end):
        return int(random.uniform(start, end) * 1000)

    a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值