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 相关文章推荐
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
python框架django基础指南
Sep 08 Python
python利用matplotlib库绘制饼图的方法示例
Dec 18 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
flask使用session保存登录状态及拦截未登录请求代码
Jan 19 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
python 获取url中的参数列表实例
Dec 18 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
python写一个随机点名软件的实例
Nov 28 Python
python 穷举指定长度的密码例子
Apr 02 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中如何直接执行SHELL
2013/06/28 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
Selenium的使用详解
2018/10/19 Python
Python替换月份为英文缩写的实现方法
2019/07/15 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
基于python实现查询ip地址来源
2020/06/02 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
python如何建立全零数组
2020/07/19 Python
浅谈python锁与死锁问题
2020/08/14 Python
Pycharm安装Qt Design快捷工具的详细教程
2020/11/18 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
儿科护士实习自我鉴定
2013/10/17 职场文书
土木工程专业推荐信
2014/02/19 职场文书
个人授权委托书
2014/04/03 职场文书
建筑管理专业求职信
2014/07/28 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
神农溪导游词
2015/02/11 职场文书
七年级作文之秋游
2019/10/21 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL