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使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
python爬虫headers设置后无效的解决方法
Oct 21 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
python实现Windows电脑定时关机
Jun 20 Python
Python判断一个文件夹内哪些文件是图片的实例
Dec 07 Python
Python多进程fork()函数详解
Feb 22 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
python地震数据可视化详解
Jun 18 Python
python实现人机五子棋
Mar 25 Python
django创建超级用户时指定添加其它字段方式
May 14 Python
详解Python中string模块除去Str还剩下什么
Nov 30 Python
详解Python生成器和基于生成器的协程
Jun 03 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
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
解决python写的windows服务不能启动的问题
2014/04/15 Python
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
如何写求职信
2014/05/24 职场文书
体操比赛口号
2014/06/10 职场文书
答谢酒会主持词
2015/07/02 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
pytorch中[..., 0]的用法说明
2021/05/20 Python