hello

Menu

【爬虫学习笔记02】使用Request加入header和data

一般来说,规范的网站都会有反爬虫机制,如果说直接用urlopen发出请求的话,在包数据里的User-Agent写的是python,一下就可以被拦截掉,为了不被反爬虫机制抓住把柄,我们应该把爬虫实现得越像浏览器访问越好

官方文档上,写着urlopen有两种使用方式,一种是传入一个string,也就是传入一个网址字符串,另一种则是传入一个Request对象。显然直接传入网址字符串无法修改User-Agent,那么希望就寄托在这个Request对象里了

全是英文可能大家有点晦涩难懂【没关系我也看不懂

为了能更好的理解,我推荐大家使用chrome,网址栏后面跟着一个翻译按钮按一下就能看懂大概内容了

这样大概就能理解得了了,

  1. url:要访问的url网站,类型为字符串
  2. data:访问时提交的数据,默认不填写为无,但是一填写就默认为POST方式请求,内容仅支持byte格式
  3. headers:发送数据时的header内容,默认不填写为空
  4. method:可指定发送数据的方式,默认为GET,填写data后默认为POST

首先我们尝试一下访问"拉勾网"这个网站,搜索关键字python,并对请求包进行截取(chrome下按F12点击network可见

找到一个post类型的包,因为一般来说post是用于发送数据的,而搜索python时需要发送python这个关键字

这个包底下有这样一些东西【荧光部分

接下来就可以使用header伪装成浏览器

发送data数据【发送时需要先转换成url编码,再转换成utf8

最终代码:

至此就是一个很简单小爬虫

— 热度:280 ℃
— 于 共写了750个字
— 文内使用到的标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注