使用urllib.request获取网页
urllib是Python内置的HTTP库,使用urlib可以通过简单的步骤与HTML解析库(如Beautiful )协作创建用于收集网络数据的大型爬虫;
注:示例代码是用Python3编写的; urllib集成了两个库: Python2的urllib和urllib2,Python2的urllib2支持Python3的urllib.request
简单示例:
2 .伪造请求头信息
服务器可能会拒绝爬行器的请求,在这种情况下,必须将爬行器伪装成人类用户的浏览器。 这通常通过伪造请求标头信息(如: )来实现
3 .伪造索赔主体
访问某个站点时,需要将数据开机自检到服务器。 在这种情况下,需要伪造请求主体
为了实现有道词典的在线翻译脚本,在Chrome中打开开发工具,在网络上方法找到开机自检的请求,观察数据后发现请求主体中的‘I’是应该进行URL编码的翻译内容,所以请求
add_header (也可以使用方法伪造请求标头,如:
4 .使用代理IP
为了避免爬行器采集过多而阻塞IP的问题,可以使用诸如:这样的代理IP
注意:使用:爬虫频繁访问目标站点会占用大量服务器资源。 集中攀登有大型分布式爬行动物的网站,也相当于对该网站发起DDOS攻击。 因此,爬行动物获取数据时,应合理安排攀登频率和时间; 例如,在3360服务器相对空闲的时间,例如3360凌晨,进行登山,在一次登山任务完成后,暂停一段时间等;
5 .检测网页编码方式
大多数网页都是用UTF-8编码的,但有时会遇到使用其他编码方法的网页,因此要正确解码爬网的页面,您必须知道该网页的编码方法。
chardet是python的第三方模块,chardet可以自动检测网页编码
安装chardet : pip安装仓库
使用:
6 .获取跳转链接
网页中的一个页面可能需要根据原始URL进行一次或多次跳转才能最终到达目标页面,因此必须正确处理跳转;
使用requests模块的head ()函数获取跳转链接的URL,例如
转载于:https://www.cn blogs.com/python miss/p/10717226.html