python爬虫学习笔记(七)——修改User-Agent以及延时提交数据

经过上一篇博客,我们就可以从网页中获取我们所需要的各种信息和链接。今天是解决我再爬取过程中面临的问题,在我们进行大面积和多次的数据爬取过程中,浏览器和被爬取的网站经过判断,可能会终止我们的访问权限,所以,今天要学的就是对自己的User-Agent进行修改便于隐藏,以及在爬取过程中通过延时提交数据。

  • 首先,先来学习一下修改自己的User-Agent.
    我们通过python代码批量访问网站的数据,这样服务器的压力会增大,所以一般服务器不欢迎“非人类”的访问。一般情况下浏览器是通过User-Agent来识别的,浏览器会通过该内容向访问网站提供你所使用的浏览器类型,操作系统,浏览器内核等信息的标识。具体的我们可以通过网页的—>审查元素—>Network—>Doc—>网页中的Request Headers中找到User-Agent。在这里插入图片描述
    但是通过python访问的时候,我们的User-Agent 会被定义为python-urllib/3.4 .
    通过设置headers 的参数,我们就可以将python访问伪造成浏览器访问。设置这个headers参数有两种途径:实例化Request对象的时候将headers参数传进去和通过add_header()方法向Request对象添加headers。
    第一种方法要求headers必须是一个字典的形式:
    我们只需要在获取网页的代码之后,加入
head['Referer'] = '网址'
head['User-Agent'] = ' Mozilla//5.0( )…………'(你自己的浏览器信息,此处不再详细写)

就可以了。
还有另外一种方法,就是在Request对象生成之后,用add_header()方法追加进去:

req = request.Request(url,data)
req.add_header('Referer','网址’)
req.add_header('User-Agent','浏览器信息')
response = urllib.request.urlopen(req)
  • 然后,再学习在爬取过程中的设置延时数据提交
    这里我们使用的是time模块:
import time
……
……
time.sleep(5)(时间自拟即可)

这样我们的程序工作效率就会降低,在每次进行访问完成之后就会按照预定的时间,进行延时访问。

当然除此之外,我们也可以使用代理ip,鉴于这种方法需要申请,并且操作步骤比较麻烦,此处就不介绍了,有兴趣的可以自行搜索。

你可能感兴趣的:(python基础学习)