python爬虫利器之requests库的用法(超全面的爬取网页案例)


Posted in Python onDecember 17, 2020

requests库

利用pip安装:
pip install requests

基本请求

req = requests.get("https://www.baidu.com/")
req = requests.post("https://www.baidu.com/")
req = requests.put("https://www.baidu.com/")
req = requests.delete("https://www.baidu.com/")
req = requests.head("https://www.baidu.com/")
req = requests.options(https://www.baidu.com/)

1.get请求

参数是字典,我们可以传递json类型的参数:

import requests
from fake_useragent import UserAgent#请求头部库
headers = {"User-Agent":UserAgent().random}#获取一个随机的请求头
url = "https://www.baidu.com/s"#网址
params={
  "wd":"豆瓣"  #网址的后缀
}

requests.get(url,headers=headers,params=params)

python爬虫利器之requests库的用法(超全面的爬取网页案例)

返回了状态码,所以我们要想获取内容,需要将其转成text:

#get请求

headers = {"User-Agent":UserAgent().random}
url = "https://www.baidu.com/s"
params={
  "wd":"豆瓣"
}

response = requests.get(url,headers=headers,params=params)
response.text

2.post 请求

参数也是字典,也可以传递json类型的参数:

import requests 
from fake_useragent import UserAgent

headers = {"User-Agent":UserAgent().random}

url = "https://www.baidu.cn/index/login/login" #登录账号密码的网址
params = {
  "user":"1351351335",#账号
  "password":"123456"#密码
}

response = requests.post(url,headers=headers,data=params)
response.text

python爬虫利器之requests库的用法(超全面的爬取网页案例)

因为这里需要一个登录的网页,我这里就随便用了一个,没有登录,所以显示的结果是这样的,如果想要测试登录的效果,请找一个登录的页面去尝试一下。

3.IP代理

采集时为避免被封IP,经常会使用代理,requests也有相应 的proxies属性。

#IP代理

import requests 
from fake_useragent import UserAgent

headers = {"User-Agent":UserAgent().random}
url = "http://httpbin.org/get" #返回当前IP的网址

proxies = {
  "http":"http://yonghuming:123456@192.168.1.1:8088"#http://用户名:密码@IP:端口号
  #"http":"https://182.145.31.211:4224"# 或者IP:端口号
}

requests.get(url,headers=headers,proxies=proxies)

代理IP可以去:快代理去找,也可以去购买。
http://httpbin.org/get。这个网址是查看你现在的信息:

python爬虫利器之requests库的用法(超全面的爬取网页案例)

4.设置访问超时时间

可以通过timeout属性设置超时时间,一旦超过这个时间还没获取到响应内容,就会提示错误。

#设置访问时间
requests.get("http://baidu.com/",timeout=0.1)

python爬虫利器之requests库的用法(超全面的爬取网页案例)

5.证书问题(SSLError:HTTP)

ssl验证。

import requests 
from fake_useragent import UserAgent #请求头部库

url = "https://www.12306.cn/index/" #需要证书的网页地址
headers = {"User-Agent":UserAgent().random}#获取一个随机请求头

requests.packages.urllib3.disable_warnings()#禁用安全警告
response = requests.get(url,verify=False,headers=headers)
response.encoding = "utf-8" #用来显示中文,进行转码
response.text

python爬虫利器之requests库的用法(超全面的爬取网页案例)

6.session自动保存cookies

import requests
from fake_useragent import UserAgent

headers = {"User-Agent":UserAgent().chrome}
login_url = "https://www.baidu.cn/index/login/login" #需要登录的网页地址
params = {
  "user":"yonghuming",#用户名
  "password":"123456"#密码
}
session = requests.Session() #用来保存cookie

#直接用session 歹意requests 
response = session.post(login_url,headers=headers,data=params)

info_url = "https://www.baidu.cn/index/user.html" #登录完账号密码以后的网页地址
resp = session.get(info_url,headers=headers)
resp.text

因为我这里没有使用需要账号密码的网页,所以显示这样:

python爬虫利器之requests库的用法(超全面的爬取网页案例)

我获取了一个智慧树的网页

#cookie 

import requests
from fake_useragent import UserAgent

headers = {"User-Agent":UserAgent().chrome}
login_url = "https://passport.zhihuishu.com/login?service=https://onlineservice.zhihuishu.com/login/gologin" #需要登录的网页地址
params = {
  "user":"12121212",#用户名
  "password":"123456"#密码
}
session = requests.Session() #用来保存cookie

#直接用session 歹意requests 
response = session.post(login_url,headers=headers,data=params)

info_url = "https://onlne5.zhhuishu.com/onlinWeb.html#/stdetInex" #登录完账号密码以后的网页地址
resp = session.get(info_url,headers=headers)
resp.encoding = "utf-8"
resp.text

python爬虫利器之requests库的用法(超全面的爬取网页案例)

7.获取响应信息

代码 含义
resp.json() 获取响应内容 (以json字符串)
resp.text 获取相应内容(以字符串)
resp.content 获取响应内容(以字节的方式)
resp.headers 获取响应头内容
resp.url 获取访问地址
resp.encoding 获取网页编码
resp.request.headers 请求头内容
resp.cookie 获取cookie

到此这篇关于python爬虫利器之requests库的用法(超全面的爬取网页案例)的文章就介绍到这了,更多相关python爬虫requests库用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
Python使用三种方法实现PCA算法
Dec 12 Python
matplotlib中legend位置调整解析
Dec 19 Python
Python实现XML文件解析的示例代码
Feb 05 Python
Python获取指定文件夹下的文件名的方法
Feb 06 Python
示例详解Python3 or Python2 两者之间的差异
Aug 23 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
python离线安装外部依赖包的实现
Feb 13 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
一劳永逸彻底解决pip install慢的办法
May 24 Python
python使用smtplib模块发送邮件
Dec 17 #Python
python实现计算器简易版
Dec 17 #Python
利用Python实现自动扫雷小脚本
Dec 17 #Python
用python读取xlsx文件
Dec 17 #Python
Python实现自动整理文件的脚本
Dec 17 #Python
Python用access判断文件是否被占用的实例方法
Dec 17 #Python
Python实例教程之检索输出月份日历表
Dec 16 #Python
You might like
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
JS宝典学习笔记(下)
2007/01/10 Javascript
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python字符遍历的艺术
2008/09/06 Python
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
2014大学校园光棍节活动策划书
2014/09/29 职场文书
投资入股合作协议书
2014/10/28 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
雷锋的观后感
2015/06/10 职场文书
新闻稿件写作范文
2015/07/18 职场文书
超市员工管理制度
2015/08/06 职场文书