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

requests

GET请求

 1 import requests
 2 
 3 headers = {
 4     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
 5 }
 6 data = {
 7     'wd': '码云'
 8 }
 9 url = "https://www.baidu.com/s"
10 response = requests.get(url, headers=headers, params=data, verify=False)
11 print(response.status_code)
12 print(response.request.url)
13 print(response.content.decode())

POST请求

 1 import json
 2 
 3 import requests
 4 import urllib3
 5 
 6 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
 7 headers = {
 8     'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36'
 9 
10 }
11 query_string = input("输入你要翻译的汉字:")
12 data = {
13     'query': query_string,
14     'from': 'zh',
15     'to': 'en'
16 
17 }
18 url = 'https://fanyi.baidu.com/basetrans'
19 response = requests.post(url=url, headers=headers, data=data, verify=False)
20 # print(response.content.decode())
21 
22 dict_ret = json.loads(response.content.decode())
23 ret = dict_ret['trans'][0]['dst']
24 print(ret)

session登录

 1 import requests
 2 import urllib3
 3 
 4 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
 5 session = requests.Session()
 6 
 7 url = "https://login.m.taobao.com/login.htm"
 8 headers = {
 9     'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
10 }
11 data = {
12     'TPL_username': "xxx",
13     'TPL_password': "xxx"
14 }
15 session.post(url=url, headers=headers, data=data, verify=False)
16 ret = session.get("https://h5.m.taobao.com/mlapp/olist.html", headers=headers, verify=False)
17 with open('cart.html', 'w', encoding='utf-8') as f:
18     f.write(ret.content.decode('utf-8'))

cookie登录

 1 import requests
 2 import urllib3
 3 
 4 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
 5 
 6 headers = {
 7     'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
 8     'Cookie': 'isg=BHx8iHc6DAlbjzjWCQinbw9ITRru3SevFeYCa1b9iGdKIRyrfoXwL_KTBc9Zclj3'
 9 }
10 
11 ret = requests.get("https://h5.m.taobao.com/mlapp/olist.html", headers=headers, verify=False)
12 with open('cart.html', 'w', encoding='utf-8') as f:
13     f.write(ret.content.decode('utf-8'))

cookie生成键值对

 1 import requests
 2 import urllib3
 3 
 4 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
 5 url = 'https://h5.m.taobao.com/mlapp/olist.html'
 6 headers = {
 7     'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
 8 }
 9 
10 cookies = 'thw=cn; t=d04efea3a8fd36e76208d492e2af8f43; '
11 cookies = {i.split('=')[0]: i.split('=')[1] for i in cookies.split("; ")}
12 
13 print(cookies)
14 ret = requests.get(url, headers=headers, cookies=cookies, verify=False)
15 with open('cart.html', 'w', encoding='utf-8') as f:
16     f.write(ret.content.decode('utf-8'))

cookiejar

 1 import requests
 2 import urllib3
 3 
 4 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
 5 
 6 url = "https://www.baidu.com/"
 7 headers = {
 8     'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
 9 }
10 response = requests.get(url, headers=headers, verify=False)
11 
12 # 将CookieJar转为字典:
13 cookies_dict = requests.utils.dict_from_cookiejar(response.cookies)
14 print(cookies_dict)
15 # 将字典转为CookieJar:
16 # cookie_dict - 插入到CookieJar中的键/值的字典。
17 # cookiejar - (可选)一个cookiejar来添加cookie。
18 # 覆盖 - (可选)如果为False,则不会使用新的jar替换jar中已有的cookie。
19 cookies = requests.utils.cookiejar_from_dict(cookies_dict, cookiejar=None, overwrite=True)
20 print(cookies)
21 
22 # 转换完之后就可以把它赋给cookies 并传入到session中了:
23 # s = requests.Session()
24 # s.cookies = cookies
25 #
26 # print(s.cookies)

url地址解码

 1 import requests
 2 import urllib3
 3 
 4 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
 5 
 6 url = 'https://www.baidu.com/s?word=人工智能'
 7 
 8 ret = requests.utils.quote(url)
 9 print(ret)
10 
11 ret = requests.utils.unquote(ret)
12 print(ret)
13 
14 headers = {
15     'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
16 }
17 response = requests.get(url, timeout=5, headers=headers, verify=False)
18 print(response.content.decode())

异常重试

 1 import requests
 2 from retrying import retry
 3 
 4 url = "http://www.youtube.com"
 5 headers = {
 6     'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
 7 }
 8 
 9 
10 # 最大重试3次 异常捕获
11 @retry(stop_max_attempt_number=3)
12 def _parse_url(urls, method, data, proxies):
13     if method == 'POST':
14         response = requests.post(urls, headers=headers, data=data, timeout=3, proxies=proxies)
15     else:
16         response = requests.get(urls, headers=headers, data=data, timeout=3, proxies=proxies)
17     assert response.status_code == 200
18     return response.content.decode()
19 
20 
21 def parse_url(urls, method='get', data=None, proxies={}):
22     try:
23         html_str = _parse_url(urls, method, data, proxies)
24     except:
25         html_str = None
26 
27     return html_str
28 
29 
30 if __name__ == '__main__':
31     print(parse_url(url))

 

转载于:https://www.cnblogs.com/ronle/p/10127722.html

相关文章:

  • for function括号内符号问题
  • for循环中索引值和取值的迷惑
  • PHP入门
  • mysql 导出数据字典
  • 11
  • Redis
  • 带附加条件的NewID()用法
  • Spring中@Async注解实现“方法”的异步调用
  • Sniffer 使用详解
  • mac定时任务
  • Java开发,表单提交中发生中文乱码的问题。
  • 吐血推荐——(一级集成资质投标文件)绝密!!
  • 删除链表的倒数第N个节点
  • 计算机网络安全《社会工程学》——欺骗的艺术
  • Docker 容器的运行(八)
  • (三)从jvm层面了解线程的启动和停止
  • [nginx文档翻译系列] 控制nginx
  • 《深入 React 技术栈》
  • 【技术性】Search知识
  • 2017 前端面试准备 - 收藏集 - 掘金
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Druid 在有赞的实践
  • echarts的各种常用效果展示
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • github从入门到放弃(1)
  • javascript面向对象之创建对象
  • Java多线程(4):使用线程池执行定时任务
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 搭建gitbook 和 访问权限认证
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 分享一份非常强势的Android面试题
  • 机器学习 vs. 深度学习
  • 开发基于以太坊智能合约的DApp
  • 力扣(LeetCode)965
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 中文输入法与React文本输入框的问题与解决方案
  • ionic入门之数据绑定显示-1
  • 湖北分布式智能数据采集方法有哪些?
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #HarmonyOS:Web组件的使用
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Forward) Music Player: From UI Proposal to Code
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Java)【深基9.例1】选举学生会
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))