源码分析

这里,我们使用谷歌浏览器自带的工具来进行分析: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)

输出结果

从上面输出结果可以看出,我们确实爬取到了网页数据,只是这个样子的数据对于我们非常的不友好,全是英文代码,而我们的目标数据就夹在其中。