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模拟登录百度贴吧(百度贴吧登录)实例
Dec 18 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
对python中不同模块(函数、类、变量)的调用详解
Jul 16 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
在python中求分布函数相关的包实例
Apr 15 Python
Python使用sqlite3模块内置数据库
May 07 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 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无限级分类实现方法分析
2016/10/19 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
asm.js使用示例代码
2013/11/28 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
jQuery实现的AJAX简单弹出层效果代码
2015/11/26 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
python实现DES加密解密方法实例详解
2015/06/30 Python
python中私有函数调用方法解密
2016/04/29 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python Flask基础教程示例代码
2018/02/07 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
python字典排序的方法
2019/10/12 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
python如何随机生成高强度密码
2020/08/19 Python
大学生优秀的自我评价分享
2013/10/22 职场文书
土建资料员岗位职责
2014/01/04 职场文书
报关员个人职业生涯规划书
2014/03/12 职场文书
英语教师求职信
2014/06/16 职场文书
服务标语大全
2014/06/18 职场文书
迁户口计划生育证明
2014/10/19 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
初中运动会前导词
2015/07/20 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP
Golang连接并操作MySQL
2022/04/14 MySQL