欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python爬虫笔记【一】模拟用户访问之设置请求头 (1)

程序员文章站 2024-02-01 13:55:16
学习的课本为《python网络数据采集》,大部分代码来此此书。 网络爬虫爬取数据首先就是要有爬取的权限,没有爬取的权限再好的代码也不能运行。所以首先要伪装自己的爬虫,让爬虫不像爬虫而是像人一样访问网页。废话不多说开始伪装。 1.修改请求头 这里要用到python的requests的模块,首相介绍一下 ......

学习的课本为《python网络数据采集》,大部分代码来此此书。

  网络爬虫爬取数据首先就是要有爬取的权限,没有爬取的权限再好的代码也不能运行。所以首先要伪装自己的爬虫,让爬虫不像爬虫而是像人一样访问网页。废话不多说开始伪装。

  1.修改请求头

  这里要用到python的requests的模块,首相介绍一下http请求头,它就是你每次在访问网页时,向服务器传输的一组属性和配置信息。下面有七个字段被大多数浏览器用来初始化网络请求。

属性

内容
host https://www.google.com/
connection keep-alive
accept text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
user-agent mozilla/5.0 (macintosh; intel mac os x 10_9_5) applewebkit/537.36 (khtml, like
gecko) chrome/39.0.2171.95 safari/537.36
referrer https://www.google.com/
accept-encoding gzip,deflate,sdch
accept-language en-us,en;q=0.8

这是用户在访问网页时所发出的host请求(图为书中作者的请求,打开f12可查看自己的host请求)。一下为不加请求头时python爬虫发出的请求。

accept-encoding identity
user-agent

python- urllib/3.4

用requests模块可以对请求头自定义。我们用下面的程序来采集这个网站的信息,验证我们浏览器的cookie 设置:  

 1 import requests
 2 from bs4 import beautifulsoup
3 session = requests.session() # 创建一个session对象 4 headers = {"user-agent":"mozilla/5.0 (macintosh; intel mac os x 10_9_5) 5       applewebkit 537.36 (khtml, like gecko) chrome", 6       "accept":"text/html,application/xhtml+xml,application/xml; 7       q=0.9,image/webp,*/*;q=0.8"}
8 url = "https://www.whatismybrowser.com/developers/what-http-headers-is-my-browser-sending" #这个网站可以把请求头显示在页面上方便我们验证 10 req = session.get(url, headers=headers) #发起get请求 11 bsobj = beautifulsoup(req.text) 12 print(bsobj.find("table",{"class":"table-striped"}).get_text)

输出结果中的请求头应该和程序中设置的headers 是一样的。这样就完成了模拟用户访问的第一步模拟请求头。