Python爬虫request方法简介

本文详细介绍了Python爬虫中requests库的request方法使用技巧,包括GET、POST等请求方式,以及params、data、json、headers等关键参数的用法。通过实例演示了如何设置超时、使用代理和上传文件。

Python爬虫request方法

使用方法:requests.request(method,url,**kwargs)

  • method:请求方式,对应get/put/post等七种方法;
  • url:拟获取页面的url链接;
  • kwargs:13个控制访问参数,为可选项(**表示可选):
    • params:字典或字节序列,作为参数增加到url中。
    • data:字典、字节序列或文件对象,作为向服务器提交资源使用。
    • json:JSON格式的数据,作为Request的内容。
    • headers:字典,HTTP定制请求头部信息。
    • cookies:字典或CookieJar,解析Request中的cookie。
    • auth:元祖,支持HTTP认证功能;
    • files:字典类型,传输文件;
    • timeout:设定超时时间,单位为秒;
    • proxies:字典类型,设定发那个文代理服务器,可以增加登录认证;
    • allow_redirects:True/False,默认为True,重定向开关。
    • stream:True/False,默认为True,获取内容立即下载开关。
    • verify:True/False,默认为True,认证SSL证书开关。
    • cert:保存本地SSL证书路径。

【1】params

import requests
kv = {'key1': 'value1','key2': 'value2'}
r = requests.post('http://httpbin.org/post',params=kv)
print(r.url)

##http://httpbin.org/post?key1=value1&key2=value2
##[Finished in 0.7s]

【2】data

import requests
kv = {'key1': 'value1','key2': 'value2'}
r = requests.request('POST','http://httpbin.org/post',data=kv)
print(r.url)
body = '654456'
e = requests.request('POST','http://httpbin.org/post',data=body)
print(e.url)

 ##http://httpbin.org/post
##http://httpbin.org/post
##[Finished in 0.7s]

【3】json

import requests
kv = {'key1': 'value1'}
r = requests.request('POST','http://httpbin.org/post',json=kv)
print(r.url)

【4】headers

import requests
hd = {'user-agent': 'Chrome/10'}
r = requests.request('POST','http://httpbin.org/post',headers=hd)
print(r.request.headers)

##{'user-agent': 'Chrome/10', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0'}
##[Finished in 0.7s]

注意:常用于模拟浏览器。

【5】files

import requests
fs = {'file': open('top_cpu.sh','rb')}
r = requests.request('POST','http://python123.io/ws',files=fs)
print(r.encoding)
print(r.request.headers)

注意:向某一个链接提交一个文件。
注意:在文本文件中,“回车”在不同的操作系统中,Windows=\r\n,linux=\n,unix=\r。
注意:Python,r为仅读取 w为仅写入,a为仅追加。open()文件,存在r、rb、rt模式;
注意:rt:会自动将\r\n转换成\n;
注意:r:常用,但是在进行读取二进制文件时,可能会出现文档读取不全的现象;
注意:rb:按照二进制位进行读取,不会将读取的字符转换成字符。

【6】timeout

import requests
fs = {'file': open('top_cpu.sh','rb')}
r = requests.request('GET','http://www.baidu.com',timeout=1)
r.encoding = 'utf-8'
print(r.text)

注意:timeout为超时时间,未响应时,便会产生一个“requests.Timeout”异常。
### 【7】proxies
import requests
#pxs = {'http': 'http://user:pass@10.10.10.1:1234','https': 'https://10.10.10.1:4321'}
pxs = {'http':'http://192.168.30.56:9667'}
r = requests.request("GET",'http://www.baidu.com', proxies=pxs)
print(r.text)

注意:使用proxies可以很好的隐藏源IP地址,防止对爬虫的逆追踪。。

### Python爬虫Requests库使用教程 #### Requests简介 `Requests` 是一个用于发送 HTTP 请求的第三方库,它简单易用且功能强大。通过 `Requests` 可以轻松实现网页数据的获取、表单提交以及与其他服务交互等功能。 #### 基本请求方法 以下是常用的几种 HTTP 方法及其对应的 `Requests` 调用方式: - **GET 请求** 发送 GET 请求通常用来获取页面内容。 ```python import requests response = requests.get('https://example.com') print(response.text) # 输出响应内容 ``` - **POST 请求** POST 请求可以携带参数或数据到目标 URL。可以通过传递字典或其他可迭代对象来设置请求体中的键值对[^1]。 ```python kv = {'key1': 'value1', 'key2': 'value2'} response = requests.post('http://python123.io/ws', data=kv) print(response.status_code) # 打印状态码 ``` #### 高级功能应用 除了基本的操作外,还可以利用更复杂的配置完成特定需求。例如处理 Cookies 和 Headers 的自定义化[^2]: - 设置头部信息 (Headers): 头部信息可以帮助模拟浏览器行为,从而绕过某些反爬机制。 ```python headers = { 'User-Agent': 'Mozilla/5.0', 'Referer': 'https://example.com' } response = requests.get('https://example.com', headers=headers) print(response.headers) # 查看返回头信息 ``` - 管理会话 (Session): 如果需要保持登录状态或者其他持续性的连接属性,则应该考虑使用 Session 对象。 ```python session = requests.Session() session.get('https://example.com/login') # 登录逻辑省略... response = session.get('https://example.com/profile') print(response.content.decode()) # 解析并打印个人资料页HTML ``` #### 数据解析流程概述 当面对动态加载的数据时,需遵循一定步骤分析其结构并提取所需部分[^3]: 1. 判断目标站点是否存在 AJAX 动态渲染; 2. 寻找 API 接口地址或者 HTML 中隐藏的关键路径模式; 3. 运用 XPath 表达式、CSS Selectors 或正则匹配技术定位具体节点位置; 4. 编写脚本来封装整个过程,并逐步调试完善直至满足预期效果为止。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值