js 爬虫抓取网页数据(Python3网络爬虫基本操作(二):静态网页抓取(组图))
优采云 发布时间: 2022-04-03 01:02js 爬虫抓取网页数据(Python3网络爬虫基本操作(二):静态网页抓取(组图))
Python3网络爬虫基本操作(二):静态网页抓取
一.前言
Python版本:Python3.X
运行环境:Windows
IDE:PyCharm
上一篇博文之后,相信大家对爬虫有了一定的了解。在本文中,我们将系统地讲解如何抓取静态网页资源。(本人也是爬虫的初学者,只是把学到的知识总结一下,分享给大家,如有错误,请指出,谢谢!)
二.静态网页抓取1.安装请求库
打开cmd输入:(详细安装教程请参考上一篇博客)
pip install requests
2.获取网页对应的内容
在 Requests 中,常见的功能是获取网页的内容。现在我们以 Douban() 为例。
import requests
link = "https://movie.douban.com/chart"
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'
}
req = requests.get(link, headers=headers)
print("响应状态码:", req.status_code)
print("文本编码:", req.encoding)
print("响应体:", req.text)
这将返回一个名为 req 的响应对象,我们可以从中获取所需的信息。上述代码运行结果如图:
(1)req.status_code 用于检测响应状态码。
(所有状态码的详细信息:%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin)
(2)req.encoding 是用于服务器内容的文本编码格式。
(3)req.text 是服务器响应内容。
(4)req.json() 是 Requests 中内置的 JSON *敏*感*词*。
3.自定义请求(1)获取请求
有时为了请求特定的数据,我们经常需要在 URL 中添加一些数据。在构建 URL 时,我们通常会在数据后面加上一个问号,并将其作为键/值放在 URL 中,例如。(这里是传递 start=0 到)
在 Requests 中,您可以将参数直接放入字典中,并使用 params 构建到 URL 中。
例如:
import requests
key = {'start': '0'}
req = requests.get('https://movie.douban.com/top250', params=key)
print("URL正确编码", req.url)
运行结果:
(2)自定义请求头
请求标头标头提供有关请求、响应或其他发送实体的信息。对于爬虫来说,请求头非常重要。如果没有指定请求头或请求头与实际网页不同,则可能无法得到正确的结果。我们如何获取网页的请求头呢?
我们以( )为例,进入网页检测页面。下图中箭头所指的部分就是网页的Requests Headers部分。
提取其中的重要部分并编写代码:
运行结果:
三.项目实践
我们以它为例进行实践,目的是获取起点中文网月票榜上的100本书的名字。
1.网站分析
打开起点中文网月票榜的网页,使用“检查”查看网页的请求头,写下我们的请求头。
请求头:
headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36',
'Host': 'www.qidian.com'
}
第一个只有 20 本书,如果你想得到所有 100 本书,你需要总共得到 5 页。