requests(爬虫常用)库的使用
Requests库的使用
基于urllib改写的库
示例:
import requests
response=requests.get('http://www.baidu.com')#get请求
print(response.status_code,response.url,response.cookies,response.text,sep='\n')
import requests
response=requests.post('http://httpbin.org/post')#post请求
print(response.text)#.text得到的都是字符串类型的值
带参数的get请求
import requests
data={
'name':'abc',
'age':15
}
response=requests.get('http://httpbin.org/get',params=data)#post的参数请求时data=data
print(response.text) ----------------------------------------------
#或者直接将参数拼接在url上
import requests
response=requests.get('http://httpbin.org/get?name=adas&age=12')
print(response.text)
将返回的结果变为json格式
import requests
import json
response=requests.get('http://httpbin.org/get')
print(response.json())
print(json.loads(response.text))#等价于上面的
获取二进制数据
import requests
response=requests.get('https://weibo.com/favicon.ico')
print(response.content)
with open('weibo.ico','wb')as f:
f.write(response.content)
添加http的headers属性
import requests
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36"
}
response=requests.get('https://zhihu.com/',headers=headers)
print(response.status_code)
print(response.text)
带参数的post请求
import requests
data={
'name':'wang',
'age':88
}
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36"
}
response=requests.post('http://httpbin.org/post',data=data,headers=headers)
print(response.text)
response的一些属性
import requests
response=requests.get('http://www.baidu.com')
print(response.headers)
print(response.text)
print(response.status_code)
print(response.content)
print(response.cookies)
#...还有就省略了
response状态码的判断
import requests
response=requests.get('http://www.baidu.com')
# if response.status_code==requests.codes.ok:
if response.status_code==200:
print('ok')
else:
print('error')
文件上传
import requests
files={
'file':open('weibo.ico','rb')
}
response=requests.post('http://httpbin.org/post',files=files)
print(response.text)
获取cookie
import requests
response=requests.get('htt
cook=response.cookies
print(type(cook))
for key,value in cook.item
print(key,'=',value)
维持会话
模拟登陆
import requests
s=requests.Session()#声明session对象,通过session请求网站
s.get('http://httpbin.org/cookies/set/name/123')
response=s.get('http://httpbin.org/cookies')
print(response.text)
证书验证
import requests
from requests.packages import urllib3
urllib3.disable_warnings()#去除py警告
response=requests.get('https://www.12306.cn',verify=False)#去除证书验证
print(response.status_code)
代理ip
import requests
proxies={
'http': 'http://47.89.10.103:80/'
}
response=requests.get('http://www.geogle.com',proxies=proxies)
print(response.text)
有密码的代理ip
import requests
proxies={
'http':'http://user.password@47.89.10.103:80'
}
response=requests.get('http://www.geogle.com',proxies=proxies)
print(response.text)
超时设置
import requests
from requests.exceptions import ReadTimeout
try:
response=requests.get('https://taobao.com',timeout=0.1)
except ReadTimeout as e:
print('timeout')
认证设置(需要直接登陆才能查看网站)
import requests
from requests import HTTPBasicAuth
response=requests.get('http://115.44.48.789:8888',auth=HTTPBasicAuth('user',''))
print(response.status_code)
异常处理
import requests
from requests import ReadTimeout,ConnectionError,RequestException
try:
response=requests.get('http://www.baidu.com',timeout=0.5)
print(response.status_code)
except ReadTimeout:
print('timeout')
except ConnectionError:
print('connectionerror')
except RequestException:
print('requesterror')
requests(爬虫常用)库的使用的更多相关文章
- 爬虫-Python爬虫常用库
一.常用库 1.requests 做请求的时候用到. requests.get("url") 2.selenium 自动化会用到. 3.lxml 4.beautifulsoup 5 ...
- Python爬虫学习==>第五章:爬虫常用库的安装
学习目的: 爬虫有请求库(request.selenium).解析库.存储库(MongoDB.Redis).工具库,此节学习安装常用库的安装 正式步骤 Step1:urllib和re库 这两个库在安装 ...
- Python爬虫常用库安装
建议更换pip源到国内镜像,下载会快很多:https://www.cnblogs.com/believepd/p/10499844.html requests pip3 install request ...
- python爬虫常用库和安装 -- windows7环境
1:urllib python自带 2:re python自带 3:requests pip install requests 4:selenium 需要依赖chrome ...
- 爬虫常用库之pyquery 库
pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,我个人写过的一些抓取网页数据的脚本就是用它来解析html获取数据的.他的官方文档地址是:http://packages. ...
- Python 爬虫常用库(九)
- [python爬虫]Requests-BeautifulSoup-Re库方案--Requests库介绍
[根据北京理工大学嵩天老师“Python网络爬虫与信息提取”慕课课程编写 文章中部分图片来自老师PPT 慕课链接:https://www.icourse163.org/learn/BIT-10018 ...
- [python爬虫]Requests-BeautifulSoup-Re库方案--robots协议与Requests库实战
[根据北京理工大学嵩天老师“Python网络爬虫与信息提取”慕课课程编写 慕课链接:https://www.icourse163.org/learn/BIT-1001870001?tid=100223 ...
- Python 爬虫常用的库
一.常用库 1.requests 做请求的时候用到. requests.get("url") 2.selenium 自动化会用到. 3.lxml 4.beautifulsoup 5 ...
- $python爬虫系列(2)—— requests和BeautifulSoup库的基本用法
本文主要介绍python爬虫的两大利器:requests和BeautifulSoup库的基本用法. 1. 安装requests和BeautifulSoup库 可以通过3种方式安装: easy_inst ...
随机推荐
- [POJ 1008] Maya Calendar C++解题
Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 62297 Accepted: 192 ...
- Conda相关命令的使用
-- Conda basics Conda基础命令 conda info 查看已安装的环境 conda install PACKAGENNAME 安装包 conda update PACKAGENAM ...
- 【转】参照protobuf,将json数据转换成二进制在网络中传输。
http://blog.csdn.net/gamesofsailing/article/details/38335753?utm_source=tuicool&utm_medium=refer ...
- java8新特性lamda表达式在集合中的使用
1.利用stream().forEach()循环处理List; List<String> list = Lists.newArrayList();//新建一个List 用的google提供 ...
- Bash Command 1: find
GNU find searches the directory tree rooted at each given starting-point by evaluating the given exp ...
- hihoCoder #1117 战争年代
题目大意 对一棵树的节点染色.初始时每个点都染成颜色 $0$,然后进行 $m$ 轮操作.第 $i$ 轮操作:从 $[0,d_i]$ 中随机选出一个整数 $d$,将距离点 $x_i$ 不超过 $d$ 的 ...
- 面试题之redis的过期时间原理
1.消极方法:每次访问key时判断key是否已经过期: 2.积极方法:周期性的从设置了过期时间的key中选择一部分的key进行删除 a.随机测试20个带有timeout信息的key b.如果超过25% ...
- 【BZOJ2286】消耗战(虚树,DFS序,树形DP)
题意:一棵N个点的树上有若干个关键点,每条边有一个边权,现在要将这些关键点到1的路径全部切断,切断一条边的代价就是边权. 共有M组询问,每组询问有k[i]个关键点,对于每组询问求出完成任务的最小代价. ...
- eclipse 的SVN安装
打开eclipse -> Help ->Install New Software选项, 点击Add按钮 根据需要,添加自己需要的版本svn控制器的版本,填写name和url,点击ok. ...
- Nginx没有启动文件、nginx服务不支持chkconfig、nginx无法自启
Nginx没有启动文件.nginx服务不支持chkconfig.nginx无法自启 问题描述: Nginx安装后,当想要设置Ngixn为开机启动时, 就需要把nginx的启动命令路径放到/etc/rc ...