源码分析
这里,我们使用谷歌浏览器自带的工具来进行分析:Network首先,点击上面的网址,进入豆瓣读书top250榜单的页面,然后单击我们的鼠标右键,选择检查(也可以直接使用键盘按键F12):
检查网页元素如下图所示,浏览器给了我们一个查看元素的窗口,这个窗口可能在下方,也可能在右侧,都不影响使用,鼠标单击Network:
image.png我们发现,下方一片空白,没有任何数据,这个时候,我们使用F5刷新一下看看:我们发现下方出现了大量的数据,这个时候我们只要选择我们需要的数据就可以了,很明显,我们这里需要点击一下top250,这个name。这里简单介绍一下几个类目名称:Name:文件名称
Status:请求状态码
Type:文件内容
Initiator:发送请求的对象
Size:数据传输时的大小
Time:响应时间请求地址(Request URL):book.douban.com/top250
HTTP请求方法(Request Method):get
HTTP请求方法获取用户代理信息User-Agent,将爬虫伪装成浏览器,反 反爬机制
获取用户代理信息
获取用户代理信息
示例#导入requests库
import requests
#将用户代理信息放入请求头中,把爬虫伪装成浏览器,注意不要忘记键值对需要加上''
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36'
}
#将目标地址存入变量url
url = 'https://book.douban.com/top250'
#以get方法获取网页数据并将response对象存入res
res = requests.get(url , headers = headers)
#打印网页数据
print(res.status_code)
#输出:200
我们之前讲过200表示状态码,是请求成功的意思,我们继续将网页数据打印出来看看#打印网页文本内容
print(res.text)
输出结果
从上面输出结果可以看出,我们确实爬取到了网页数据,只是这个样子的数据对于我们非常的不友好,全是英文代码,而我们的目标数据就夹在其中。