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文件和目录操作详解
Feb 08 Python
详细探究Python中的字典容器
Apr 14 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
Python之list对应元素求和的方法
Jun 28 Python
对pandas中Series的map函数详解
Jul 25 Python
浅析python参数的知识点
Dec 10 Python
python使用knn实现特征向量分类
Dec 26 Python
Python 实现微信防撤回功能
Apr 29 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
关于Django Models CharField 参数说明
Mar 31 Python
在python3.9下如何安装scrapy的方法
Feb 03 Python
Python基础数据类型tuple元组的概念与用法
Aug 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 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
php字符串操作常见问题小结
2016/10/11 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
微信小程序实现倒计时补零功能
2018/07/09 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
在Python中关于中文编码问题的处理建议
2015/04/08 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
python生成随机图形验证码详解
2017/11/08 Python
eclipse创建python项目步骤详解
2019/05/10 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
Python3常用内置方法代码实例
2019/11/18 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
读后感作文评语
2014/12/25 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js