一、获取网页地址和请求头信息
点击鼠标右键或键入F12进入开发者工具界面
开发者工具界面提供以下主要功能:
1. 元素(Elements):
- 允许查看和修改网页的 HTML 结构和 CSS 样式。
- 可以实时编辑 HTML 和 CSS,查看更改的即时效果。
2. 控制台(Console):
- 提供一个命令行接口,可以输入和执行 JavaScript 代码。
- 显示网页运行时的错误、警告和日志信息。
3. 网络(Network):
- 显示所有网络请求,包括 HTTP 请求、响应和相关的详细信息。
- 可以查看请求头(headers)、响应体(body)、加载时间等。
4. 源代码(Sources):
- 可以查看和调试网页的 JavaScript 代码。
- 支持断点调试,逐步执行代码,查看变量的值和调用栈。
5. 性能(Performance):
- 用于记录和分析网页的性能,包括页面加载时间、渲染时间和各种性能指标。
- 帮助识别和解决性能瓶颈。
6. 内存(Memory):
- 用于分析网页的内存使用情况,查找内存泄漏和高内存消耗的问题。
- 提供堆快照(heap snapshot)和内存分配分析等工具。
7. 应用(Application):
- 显示和管理网页使用的存储,包括 cookies、本地存储、会话存储、IndexedDB 等。
- 可以查看和删除存储的数据。
8. 安全(Security):
- 显示网页的安全信息,包括 SSL/TLS 证书、混合内容、内容安全策略(CSP)等。
一般在爬虫中最常使用的是网络功能:
下面就可以进行代码部分:
二、request模块介绍:
request是Python用于发送HTTP请求的模块,提供简单易用的API来执行各种HTTP请求。一般使用get模块或post模块对网站进行请求。
2.1 request.get模块
通常从服务器中获取数据,而不修改服务器上内容。
2.1.1安装
使用pip安装request模块
windou+R打开命令行窗口,确保你已经安装Python和pip,可以通过以下命令来检查:
python --version
pip --version
使用pip安装request模块
pip install request
(以上两种方法都没尝试过,一般是直接使用pycharm中的包下载功能进行直接下载。)
返回response【200】即为请求成功,若返回response【418】或其它,可能是因为请求头参数不完整,此时需要模拟构造请求头参数。
2.1.2请求头参数
1. Host: 指定服务器的域名(以及可选的端口号),是必须的请求头。
2. User-Agent: 标识发出请求的客户端软件的应用类型、操作系统、软件开发商及版本号。
3. Accept: 告诉服务器客户端可以处理的内容类型。
4. Accept-Language: 指定客户端能够理解的自然语言及语言优先级。
5. Accept-Encoding 指定客户端能够理解的内容编码(压缩算法)。
6. Connection: 指定客户端是否希望保持连接,还是在完成当前请求/响应后关闭连接。
7. Authorization: 用于传递客户端的身份验证信息。
8. Content-Type: 指定请求体的媒体类型。
9. Content-Length: 指定请求体的长度(以字节为单位)。
10. Cookie: 向服务器发送一个或多个 cookie。
11. Referer: 指示请求是从哪个页面发起的。
这些请求头帮助服务器了解客户端的能力和需求,并使服务器能够做出适当的响应。
增加请求头headers参数:
import requests
#模拟构造headers请求头
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0'
}
#通过request模拟发送网络请求
r = requests.get("http://www.douban.com",headers=headers)
r.enconding = "utf-8"
print(r.text)
#response.text返回Unicode格式,,对于所有的图片、音乐、文件、视频
#response.content返回字节流格式
#response.url查看完整url地址
#response.encoding查看响应头部字符编码
#response.status_code查看响应麻
2.2 request.post模块
向服务器提交数据,这些数据可以导致服务器上的状态改变
构建请求头后,反馈回的仅为是否可访问。因此还需构建参数字典,爬取网页所需的内容。
import requests
url = "https://httpbin.org/post"
#data中的数据往往跟登录数据相关,在检查中找到login文件,payload中找到From Data
data = {
'kay1':'value1',
'key2':'value2'
}
#构建请求头信息
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0'
}
#发送请求
r = requests.post(url,data = data,headers=headers)
r.enconding = "utf-8"
print(r.text)