当前位置: 首页 > wzjs >正文

ps企业网站模板免费下载seo关键词排名优化app

ps企业网站模板免费下载,seo关键词排名优化app,四川做网站的,在农村做相亲网站怎么样Python requests 库全面解析requests 是 Python 中最受欢迎的 HTTP 客户端库,以其简洁优雅的 API 设计著称。有以上使用场景:1. API交互:与RESTful API进行交互,如获取、创建、更新或删除资源。例如:- 从Twitter API获…

Python requests 库全面解析

requests 是 Python 中最受欢迎的 HTTP 客户端库,以其简洁优雅的 API 设计著称。有以上使用场景:

1. API交互:与RESTful API进行交互,如获取、创建、更新或删除资源。例如:
- 从Twitter API获取推文
- 发送消息到Slack
- 调用Google Maps API进行地理编码
2. 网页抓取(Web Scraping):虽然通常与BeautifulSoup、lxml等解析库配合使用,但Requests负责获取网页内容。例如:
- 下载整个网页内容
- 获取JSON格式的动态加载数据(通过XHR请求)
3. 自动化测试:对Web服务进行自动化测试,验证API端点是否按预期工作。
4. 文件下载:下载网络资源,如图片、PDF、视频等。支持大文件流式下载。
5. 提交表单数据:模拟浏览器表单提交,如登录网站、提交数据到服务器。
6. Web服务监控:定期发送请求检查网站或服务的可用性。
7. 数据采集:从多个来源收集数据,如聚合新闻、价格比较等。
8. 身份验证和授权:处理需要认证的请求,如OAuth、基本认证等。
9. 代理和隧道:通过代理服务器发送请求,用于访问受限资源或隐藏真实IP。
10. 会话保持:使用Session对象维持会话状态,处理需要登录的网站。
11. SSL证书验证:在安全通信中验证服务器证书,或跳过验证(不推荐)。
12. 设置请求头:自定义User-Agent、Referer等请求头,模拟浏览器行为。
13. 处理Cookie:自动管理Cookie,或手动设置Cookie。
14. 流式上传:上传大文件而无需一次性读入内存。
15. 性能监控:通过钩子函数监控请求响应时间、重定向次数等。
16. 模拟浏览器行为:结合其他库(如Selenium)完成复杂交互,但Requests本身适合无JavaScript的简单交互。
17. 构建网络爬虫框架:作为底层HTTP引擎,被Scrapy等框架使用(虽然Scrapy有自己的实现,但Requests常用于小规模爬虫)。
18. 与云服务交互:如使用AWS S3、Azure Blob存储的API。
19. 发送带附件的邮件:通过邮件服务的API发送邮件。
20. 物联网(IoT):设备通过HTTP协议上报数据到服务器。
每个场景下,Requests的简洁性都体现在:
- 直观的HTTP方法(get, post, put, delete等)
- 简单的参数传递(params, data, json, headers等)
- 自动处理编码、解码
- 方便的响应处理方法(text, content, json()等)
注意:对于需要JavaScript渲染的网页,Requests无法直接处理(因为它不执行JS),此时需使用Selenium、Playwright等工具。

1.安装与基本使用

python
# 安装
pip install requests# 基本 GET 请求
import requests
response = requests.get('https://api.example.com/data')
print(response.status_code)  # 200
print(response.text)        # 响应内容

 2.各种http请求方法

# GET 请求
response = requests.get('https://httpbin.org/get')# POST 请求
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=payload)# PUT 请求
response = requests.put('https://httpbin.org/put', data={'key': 'value'})# DELETE 请求
response = requests.delete('https://httpbin.org/delete')# HEAD 请求
response = requests.head('https://httpbin.org/headers')# OPTIONS 请求
response = requests.options('https://httpbin.org')

其中get请求和post请求最为常见

3. 参数传递

URL 参数

以字典格式,传入params参数,

params = {'search': 'python', 'page': 2}
response = requests.get('https://httpbin.org/get', params=params)
print(response.url)  # https://httpbin.org/get?search=python&page=2

 表单数据

以字典格式,传入data参数,为post请求

data = {'username': 'admin', 'password': 'secret'}
response = requests.post('https://httpbin.org/post', data=data)

 JSON 数据

以字典格式,传入json参数,为post请求

json_data = {'name': 'Alice', 'age': 30}
response = requests.post('https://httpbin.org/post', json=json_data)

 文件上传

某些 API 可能需要从客户端接收文件作为输入数据。

files = {'file': open('report.xls', 'rb')}
response = requests.post('https://httpbin.org/post', files=files)

4.响应处理

响应数据,文本或者json提取数据,二进制则下载文件,响应体看作为参数传入下一个请求中(逆向),url可以判断或者拼接等等。

response = requests.get('https://api.example.com/data')# 响应内容
print(response.text)          # 文本内容
print(response.content)       # 二进制内容
print(response.json())        # JSON 响应解析为字典# 响应头
print(response.headers)
print(response.headers['Content-Type'])# 状态码
print(response.status_code)
response.raise_for_status()   # 如果状态码不是200,抛出异常# 响应URL
print(response.url)# 响应历史(重定向)
print(response.history)

 5.请求头定制

有些基本的反爬就是效验请求头,所以要更可能的模拟浏览器环境,难一点就是对请求头进行加密(逆向)

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)','Accept': 'application/json','Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}
response = requests.get('https://api.example.com', headers=headers)

6. Cookie 管理

一般cookies也跟请求头一样,效验cookies,对cookies加密等,还有一个重要的事,cookies包含登录信息,比如网站要登录,一个账号有vip,那就可以采集vip信息,另一个账号没vip,就采集不了。

# 发送 Cookies
cookies = dict(key1='value1', key2='value2')
response = requests.get('https://httpbin.org/cookies', cookies=cookies)# 接收 Cookies
response = requests.get('https://example.com')
print(response.cookies)
print(response.cookies['session_id'])# 会话对象保持 Cookies
session = requests.Session()
session.get('https://example.com/login', params={'user': 'admin', 'pass': 'secret'})
response = session.get('https://example.com/dashboard')  # 保持登录状态

 7.超时设置

这个很重要的。有个网站响应半天都没有响应结果,如果你对一连串网站进行调度爬虫,有些网站根本响应不了,又报不了错,这时这个调度的位置占着茅坑不拉屎,很大程度影响了爬虫性能。所以可以用超时设置。

# 连接超时和读取超时
try:response = requests.get('https://api.example.com', timeout=(3.05, 27))
except requests.exceptions.Timeout:print("请求超时")

8. 代理设置

添加代理主要是有些网站本地ip访问不了,换代理ip就可以去请求该网站。或者说一些网站采集频繁会封ip,这时只能用多ip对该网站进行爬取。每次爬取用不同ip,基本就能完整采集数据。

proxies = {'http': 'http://10.10.1.10:3128','https': 'http://10.10.1.10:1080',
}
response = requests.get('https://api.example.com', proxies=proxies)# 需要认证的代理
proxies = {'https': 'http://user:pass@10.10.1.10:3128/'}

9. SSL 证书验证

一些网站请求会报SSL错误,添加 verify=False即可解决。如果解决不了http变成https或者https变为http。

# 禁用证书验证(不推荐用于生产环境)
response = requests.get('https://api.example.com', verify=False)# 使用自定义 CA 包
response = requests.get('https://api.example.com', verify='/path/to/cert.pem')# 客户端证书
response = requests.get('https://api.example.com', cert=('/path/client.cert', '/path/client.key'))

10.会话保持

每次请求时,都会携带上一次请求的cookies

# 复用Cookies/连接s = requests.Session()response = s.get('https://api.example.com/dashboard')  # 保持登录状态response2 = s.get('https://api.example2.com/dashboard')  # 保持登录状态

11.错误处理

try:response = requests.get(url, timeout=5)response.raise_for_status()  # 自动抛出4xx/5xx错误
except requests.exceptions.Timeout:print("请求超时")
except requests.exceptions.HTTPError as err:print(f"HTTP错误: {err}")
except requests.exceptions.RequestException as err:print(f"请求异常: {err}")

12.简单封装一下requests 的类

import requestsclass req_obj():def __init__(self):self.headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0"}self.session = requests.Session()def get_content(self, url,headers=None,method='GET',data=None,json = None,proxy=None,cookies=None):headers = headers or self.headersif method=='GET':return self.session.get(url,headers=headers,proxies=proxy,cookies =cookies).textif method=='POST':if data:return self.session.post(url,headers=headers,data=data,proxies=proxy,cookies =cookies).json()if json:return self.session.post(url,headers=headers,json=json,proxies=proxy,cookies =cookies).json()def get_cookies(self):cookies = self.session.cookies.get_dict()return cookiesdef get_headers(self):res_headers = self.session.headersreturn res_headersdef download_file(self,url,headers=None):headers = headers or self.headersreturn self.session.get(url,headers=headers).content

有get请求,post请求,获取网页html,获取json数据,获取字节流,获取响应头,获取cookies等等。

总结

requests 库提供了简洁而强大的接口,使得发送 HTTP 请求变得非常容易。以上是基本用法,更多高级特性(如文件上传、流式请求、会话保持,认证等)非常的方便。

http://www.dtcms.com/wzjs/54667.html

相关文章:

  • 做网站枣庄网站怎么优化关键词快速提升排名
  • 程序员培训机构课程google 推广优化
  • 电子商务网站建设评估工具搜索引擎优化要考虑哪些方面?
  • 长春商城网站开发seo深圳培训班
  • 深圳市城乡和建设局网站百度一下你就知道网页
  • 企业网站用什么技术做西安网站seo服务
  • 网站建设html5建网站需要什么条件
  • 广东长城建设集团有限公司 网站新闻稿发布软文平台
  • 手机怎么注册自己的网站热搜榜百度一下你就知道
  • 石家庄外贸做网站网站推广优化平台
  • 临清做网站企业培训课程设计
  • 网站建设难度大吗设计网站用什么软件
  • 专业网站建设公司兴田德润放心如何做网站推广广告
  • 武汉百度推广费用seo课程培训机构
  • 公司申请网站建设申请理由什么叫口碑营销
  • 网站查不到备案深圳网络公司推广平台
  • 昆明网站制作前十qq空间刷赞网站推广
  • 深圳酒店网站建设一个关键词要刷多久
  • 自动化设备技术支持东莞网站建设网络营销的内容主要有哪些
  • 莱芜网站开发代理网络营销自学网站
  • 做性用品网站需要多少钱西安seo关键字优化
  • php做的卖水果网站有哪些seo投放是什么意思
  • wordpress伪静态很慢做优化关键词
  • 做设计想接外单去哪个网站好日照seo优化
  • 想自己做网站流程百度投诉中心电话
  • 淮北网站建设制作站长统计app进入网址新版小猪
  • 中天建设南京公司重庆网站优化排名推广
  • 网站举报入口网络推广技巧
  • 做网站 (公司)专业培训心得体会
  • 怎么把网站的标题做的炫酷推广页面