小白学爬虫---Request模块

一、获取网页地址和请求头信息

点击鼠标右键或键入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)

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值