博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
requests库的基本使用
阅读量:4953 次
发布时间:2019-06-12

本文共 3016 字,大约阅读时间需要 10 分钟。

1.发送get请求

import requests# response=requests.get('http://www.baidu.com')# 查看响应内容,返回的是已经解码的内容# response.text  服务器返回的数据,已解码。解码类型:根据HTTP头部对响应的编码做出有根据的推测,推测的文本编码# print(type(response.text))# print(response.text)# 百度返回的text有乱码,说明解码猜测的编码方式不对# 查看响应内容# print(type(response.content))# print(response.content.decode('utf-8'))# 解码正确,没有乱码# 查看完整url地址# print(response.url)# 查看响应头部字符编码# print(response.encoding)# 查看响应码# print(response.status_code)params = {
'wd': '中国'}headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'}#params传入,会自动进行编码response=requests.get('http://www.baidu.com/s',headers=headers,params=params)print(response.url)with open('baidu.html','w',encoding='utf-8') as f: f.write(response.content.decode('utf-8'))
View Code

2.发送post请求

import requestsdata = {    'first': True, 'pn': 1, 'kd': 'python'}headers = {    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36',    'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',    'Cookie':'JSESSIONID=ABAAABAAAFCAAEGE19E4DE9949656042D040782B344E314; SEARCH_ID=94069a753d8a4157a4b8a44284d4b719; user_trace_token=20190404002147-ba37c7c8-aa84-4a31-8171-738e6bcfadf2; X_HTTP_TOKEN=42daf4b72327b2817058034551bf5e71415983ed09'}response = requests.post('https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false',headers=headers,data=data)print(response.text)#把传来的数据转成原本数据类型(如果传输的是json格式的字符串)# print(response.json())#测试# ret=response.text# # import json# # ret=json.loads(ret)# # print(type(ret))
View Code

3.使用代理

import requests#不使用代理# response=requests.get('http://httpbin.org/ip')# print(response.text)#使用代理#尽量使用高匿名的代理,透明的话,它依然能识别原来的ip地址。proxy={
'http':'112.85.149.79:9999'}response=requests.get('http://httpbin.org/ip',proxies=proxy)print(response.text)
View Code

4.处理cookie信息

import requests# response=requests.get('http://www.baidu.com')#返回的是一个对象# print(response.cookies)#获取字典形式信息# print(response.cookies.get_dict())#session#之前使用的urlib库,是可以使用opener发送多个请求,多个请求之间是可以共享cookie的。那么如果使用requests,#也要达到共享cookie的目的,那么可以使用requests库提供的session对象。它简化了我们每次模拟请求时都要带上cookie#的复杂操作,使用session它自己会帮我们带上headers里面的cookie信息url='http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2019341135380'session=requests.session()data={    'email':'9@qq.com',    'password':'pythonspr'}headers={    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'}session.post(url,data=data,headers=headers)#只有登录后才能查看大鹏的页面response=session.get('http://www.renren.com/880151247/profile',headers=headers)with open('renren.html','w',encoding='utf-8') as f:    f.write(response.text)#查看页面,确实登录成功
View Code

5.处理不信任的ssl证书

#处理不信任的ssl证书,加上verify=False就可以了import requestsresp=requests.get('http://www.12306.cn',verify=False)print(resp.text)
View Code

 

转载于:https://www.cnblogs.com/xufengnian/p/10788190.html

你可能感兴趣的文章
刷新加载1
查看>>
ROC-RK3308-CC开发实例总结——HZ711 压力传感器的使用方法
查看>>
MySQL数据备份之mysqldump使用(转)
查看>>
View转化为bitmap
查看>>
关闭Android应用程序[学习笔记一]
查看>>
新手学appium-appium错误截图
查看>>
amchart使用柱状图配置
查看>>
前端时间戳和时间转换
查看>>
二分图——最大不可互相到达数 = 最小路径覆盖数
查看>>
C#中抽象类和接口的区别(二)
查看>>
一、线性结构
查看>>
[SPOJ2021] Moving Pebbles
查看>>
Log4Net不同日志类型写入到不同文件
查看>>
VR AR MR的未来
查看>>
Python 编辑器内容
查看>>
软件设计不同时期的关注点分离(2010-04-26)
查看>>
Entity Framework 基于方法的查询语法
查看>>
Ruby 事务Blocks
查看>>
JAVAEE企业级应用开发浅谈之MVC 中的V-VIEW视图
查看>>
手机SIM卡编号的含义
查看>>