您当前的位置:首页 > 计算机 > 编程开发 > Python

JavaScript获取本机浏览器UA助力Python爬取糗事百科首页

时间:12-30来源:作者:点击数:

问题背景:

使用Python编写爬虫时,经常会遇到反爬机制,例如网站要求必须使用浏览器访问。就像下面的403错误:

或者下面这种错误信息:

一般来说,这是遇到反爬机制了,对方要求使用浏览器访问。这时可以在爬虫程序中修改代码,设置UserAgent,假装自己是浏览器。很多人会到网上搜可用的UserAgent,但是搜到的UA也可能无法使用,只好多搜几个试试。也有时候,即使成功假装自己是浏览器,也可能被封,因为爬虫的访问速度要比人类使用浏览器正常访问快很多,这对服务器来说是不正常的。

可以想办法获取本地浏览器的真实UA,然后写到爬虫代码里,因为是真实的UA,所以基本上不会被反爬机制限制。如果本地安装了多个浏览器的话,可以全部整理出来,然后每次爬取网页时从多个UA中随机选择一个,这样的话安全系数就提高了很多,不容易被拦截了。

获取浏览器UserAgent:

如果使用Chrome浏览器(这也是在编写爬虫程序之前分析目标网页常用的浏览器)的话,可以在地址栏中输入about:version,然后在页面中即可看到UA,复制下来就可以了。

如果是360浏览器的话,可以使用下面的命令查看UA:

好像Edge、IE、FireFox这样的浏览器不支持about:version指令,如果有朋友知道类似指令的话欢迎留言告知,让更多朋友受益。

还有个万能的方法是使用Javascript代码查看本地浏览器的UA。编写一个网页,内容如下,画红线的地方是重点,获取UA并显示在页面上。

然后使用不同的浏览器打开这个网页,就可以看到UA了。

实战应用:

多准备几个不同浏览器的UA,然后编写下面的代码爬取糗事百科首页上的段子文本。因为糗事百科首页更新很快,这里就不贴爬取结果了,大家可以自己运行试一试。爬取页面上的图片也比较简单,栏目里以前发布过很多类似的案例,就不再重复了。相关文章可以按照后面的温馨提示进入历史文章列表进行查找。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门