python爬虫中requests库怎么用
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下python爬虫中requests库怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python爬虫
千家信息网最后更新 2025年11月07日python爬虫中requests库怎么用异常处理
小编给大家分享一下python爬虫中requests库怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
python爬虫-requests库的用法
requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,requests 允许你发送 HTTP/1.1 请求。指定 URL并添加查询url字符串即可开始爬取网页信息等操作
因为是第三方库,所以使用前需要cmd安装
pip install requests
安装完成后import一下,正常则说明可以开始使用了
基本用法:
requests.get()用于请求目标网站,类型是一个HTTPresponse类型
import requestsresponse = requests.get('http://www.baidu.com')print(response.status_code) # 打印状态码print(response.url) # 打印请求urlprint(response.headers) # 打印头信息print(response.cookies) # 打印cookie信息print(response.text) #以文本形式打印网页源码print(response.content) #以字节流形式打印以打印状态码为例,运行结果:
状态码:200,证明请求目标网站正常
若状态码为403一般是目标存有防火墙,触发了反爬策略被限制了IP
各种请求方式:
import requestsrequests.get('http://www.baidu.com')requests.post('http://www.baidu.com')requests.put('http://www.baidu.com')requests.delete('http://www.baidu.com')requests.head('http://www.baidu.com')requests.options('http://www.baidu.com')基本的get请求
import requestsresponse = requests.get('http://www.baidu.com')print(response.text)带参数的GET请求:
第一种直接将参数放在url内
import requestsresponse = requests.get("https://www.crrcgo.cc/admin/crr_supplier.html?params=1")print(response.text)
另一种先将参数填写在data中,发起请求时将params参数指定为data
import requestsdata = { 'params': '1',}response = requests.get('https://www.crrcgo.cc/admin/crr_supplier.html?', params=data)print(response.text)基本POST请求:
import requestsresponse = requests.post('http://baidu.com')解析json
import requestsresponse = requests.get('http://httpbin.org/get')print(response.text)print(response.json()) #response.json()方法同json.loads(response.text)print(type(response.json()))简单保存一个二进制文件
import requestsresponse = requests.get('http://img.ivsky.com/img/tupian/pre/201708/30/kekeersitao-002.jpg')b = response.contentwith open('F://fengjing.jpg','wb') as f: f.write(b)为你的请求添加头信息
import requestsheads = {}heads['User-Agent'] = 'Mozilla/5.0 ' \ '(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \ '(KHTML, like Gecko) Version/5.1 Safari/534.50' response = requests.get('http://www.baidu.com',headers=headers)此方法可以有效地避开防火墙的检测,隐藏自己身份
使用代理
同添加headers方法一样,代理参数也是一个dict这里使用requests库爬取了IP代理网站的IP与端口和类型。因为是免费的,使用的代理地址很快就失效了。
import requestsimport redef get_html(url): proxy = { 'http': '120.25.253.234:812', 'https' '163.125.222.244:8123' } heads = {} heads['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0' req = requests.get(url, headers=heads,proxies=proxy) html = req.text return htmldef get_ipport(html): regex = r'(.+) ' iplist = re.findall(regex, html) regex2 = '(.+) ' portlist = re.findall(regex2, html) regex3 = r'(.+) ' typelist = re.findall(regex3, html) sumray = [] for i in iplist: for p in portlist: for t in typelist: pass pass a = t+','+i + ':' + p sumray.append(a) print('高匿代理') print(sumray)if __name__ == '__main__': url = 'http://www.baidu.com' get_ipport(get_html(url))获取cookie
import requestsresponse = requests.get('http://www.baidu.com')print(response.cookies)print(type(response.cookies))for k,v in response.cookies.items(): print(k+':'+v)会话维持
import requestssession = requests.Session()session.get('https://www.crrcgo.cc/admin/crr_supplier.html')response = session.get('https://www.crrcgo.cc/admin/')print(response.text)证书验证设置
import requestsfrom requests.packages import urllib3urllib3.disable_warnings() #从urllib3中消除警告response = requests.get('https://www.12306.cn',verify=False) #证书验证设为FALSEprint(response.status_code)超时异常捕获
import requestsfrom requests.exceptions import ReadTimeouttry: res = requests.get('http://httpbin.org', timeout=0.1) print(res.status_code)except ReadTimeout: print(timeout)异常处理
使用try…except来捕获异常
import requestsfrom requests.exceptions import ReadTimeout,HTTPError,RequestExceptiontry: response = requests.get('http://www.baidu.com',timeout=0.5) print(response.status_code)except ReadTimeout: print('timeout')except HTTPError: print('httperror')except RequestException: print('reqerror')以上是"python爬虫中requests库怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
参数
代理
信息
状态
爬虫
目标
篇文章
类型
网站
内容
形式
方法
网页
证书
防火墙
防火
验证
有效
简洁
不怎么
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
亳州餐饮软件开发外包公司
改图标软件开发
永康征途网络技术有限公司
华为断供俄罗斯高端服务器
扑梦网络技术有限公司
部队有关网络安全的标题
党组网络安全工作责任制
无主之地3开启无法连接服务器
公司软件开发外包公司
内蒙古数据库安全箱价目表
深圳运维管理软件开发解决方案
数据库查看库命令
农安智能化网络安全经验丰富
moko云服务器
大一计算机网络技术总结报告
网络安全专业研究生就业
网络安全设备监理验收规范
萤火虫软件开发
中央网络安全攻防大赛
网络安全工作有用吗
数据库bak大不大
Jpa数据库链接不释放
服务器访问路径
网络安全培训班待遇
海南互联网时代网络科技
打印服务器清理小工具
和富士康合作网络安全要求
互联网云服务器提供商
计算机网络技术有本科嘛
网络安全编程书