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 相关文章推荐
Python中Iterator迭代器的使用杂谈
Jun 20 Python
python监控进程脚本
Apr 12 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
python自动保存百度盘资源到百度盘中的实例代码
Aug 26 Python
python框架flask表单实现详解
Nov 04 Python
python常用排序算法的实现代码
Nov 08 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
python实现五子棋游戏(pygame版)
Jan 19 Python
django的autoreload机制实现
Jun 03 Python
pytorch SENet实现案例
Jun 24 Python
pytorch 计算Parameter和FLOP的操作
Mar 04 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中ob_start函数的使用说明
2013/11/11 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
JavaScript 参考教程
2006/12/29 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
在python中的socket模块使用代理实例
2014/05/29 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
python使用matplotlib绘制热图
2018/11/07 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
2014年会演讲稿范文
2014/01/06 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
《燕子》教学反思
2014/02/18 职场文书
安全责任书范文
2014/03/12 职场文书
人事经理岗位职责
2014/04/28 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
分家协议书范本
2016/03/22 职场文书
Go web入门Go pongo2模板引擎
2022/05/20 Golang