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删除java文件头上版权信息的方法
Jul 31 Python
Python入门篇之列表和元组
Oct 17 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
python批量识别图片指定区域文字内容
Apr 30 Python
Django关于admin的使用技巧和知识点
Feb 10 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 Python
如何使用python自带IDLE的几种方法
Oct 10 Python
Python 实现二叉查找树的示例代码
Dec 21 Python
详解Python中的进程和线程
Jun 23 Python
Python可视化学习之seaborn调色盘
Feb 24 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(一)
2012/03/21 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
PHP文件与目录操作示例
2016/12/24 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
Prototype Array对象 学习
2009/07/19 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
JS解析XML实例分析
2015/01/30 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
js实现简单扫雷
2020/11/27 Javascript
Python 元类使用说明
2009/12/18 Python
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
物流毕业生个人的自我评价
2014/02/13 职场文书
财产公证书
2014/04/10 职场文书
无偿献血倡议书
2014/04/14 职场文书
团队精神口号
2014/06/06 职场文书
药剂专业自荐书
2014/06/20 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers