网络爬虫-pyqt5绕过反爬服务

当遇到使用selenium被网站识别为robot的时候,首先考虑的是换chromedriver,geckodriver,iedriver等

如果都行不通

那么请尝试使用pyqt5

pyqt5不仅可以做界面,他还可以调用强大的QtWebKit模块,QtWebKit是一个基于开源项目 ,WebKit的网页内容渲染引擎,借助该引擎可以更加快捷地将万维 网集成到 Qt 应用中。

举一个小小的例子:

这里写图片描述

当我们使用selenium登陆淘宝时,出现了滑块,就算我们用人工去拖动,却还是会出现无法登陆的情况,因为淘宝将你识别了出来,这样你就永远无法通过验证了,即使你是打开Selenium的情况下人为去拖动滑块验证码。

看看pyqt5:

这里写图片描述

可以发现使用pyqt5的时候淘宝官网并没有发现你是使用的第三方浏览器插件。

接下来我们就可以做我们该做的事情。

这里注意一下,pyqt5驱动的浏览器,只能通过注入js来操作页面,这里对js的熟练度要求就比较高了,比如利用js拖动滑块验证等。

简易的打开pyqt5浏览器的代码,js需要自己多多练习,比如抓取数据等。

from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl


app = QApplication([])
view = QWebEngineView()
view.load(QUrl("http://www.taobao.com/"))
view.show()
page = view.page()

def test():
	page.runjavascript("your javascript")

view.loadFinished.connect(test)

app.exec_()

selenium的功能还是比pyqt5的浏览器强大很多,但是在无法绕过反爬虫服务的情况下,可以考虑一下pyqt5,比如一打开selenium就被识别出来,distil networks这种反爬虫服务商,pyqt5是集成的chromium内核源码,因此不会被识别,但是注入js来操控爬虫的方式有点蛋疼,还需多多学习

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值