静态页面抓取

在网站设计中,纯粹HTML格式的网页通常被称为静态网页,早期的网站一般都是由静态网页制作的。在网络爬虫中,静态网页的数据比较容易获取,因为所有数据都呈现在网页的HTML代码中。相对而言,使用AJAX动态加载网页的数据不一定会出现在HTML代码中,这就给爬虫增加了困难。在静态网页抓取中,有一个强大的Requests库能够让你轻易地发送HTTP请求,这个库功能完善,而且操作非常简单。

Requests库能通过pip安装
pip install requests

1、获取响应消息

import requests

r = requests.get('http://www.santostang.com/')

print("文本编码",r.encoding)
print("响应状态码",r.status_code)
print("字符串方式的响应体",r.text)

2、定制 Requests

使用Requests库获取了网页数据,但是有些网页需要对Requests的参数进行设置才能获取需要的数据,这包括传递URL参数、定制请求头、发送POST请求、设置超时等。

2.1 传递URL参数

?+键值对

requests提供了params关键字参数来传递参数

还可以将一个列表作为值传入

注意字典里值为 None 的键都不会被添加到 URL 的查询字符串里。

2.2 定制请求头

请求头Headers提供了关于请求、响应或其他发送实体的信息。对于爬虫而言,请求头十分重要,如果没有指定请求头或请求的请求头和实际网页不一致,就可能无法返回正确的结果。Requests并不会基于定制的请求头Headers的具体情况改变自己的行为,只是在最后的请求中,所有的请求头信息都会被传递进去。

2.3 发送POST请求

2.4 超时

有时爬虫会遇到服务器长时间不返回,这时爬虫程序就会一直等待,造成爬虫程序没有顺利地执行。因此,可以用Requests在timeout参数设定的秒数结束之后停止等待响应。意思就是,如果服务器在timeout秒内没有应答,就返回异常。

Last updated

Was this helpful?