python爬虫中requests库怎么用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下python爬虫中requests库怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python爬虫
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
互联网是第几次科技革命的成果
互联网科技工作委员会副主任毛军
互联网中国科技
与互联网科技公司
西安互联网科技
善班互联网科技
互联网科技视频
赫美联合互联网科技
广州善班互联网科技
深圳市运趣互联网科技有限公司
互联网科技革命什么开始
中国航天科技大学国际工业互联网
互联网科技大奖都有哪些公司
想开互联网科技公司怎么样
上海乐五互联网科技有限公司
广州梦谷互联网科技有限公司领导
版纳互联网科技选哪家
互联网科技和医药行业
盐城市攀科互联网科技有限公司
互联网科技创新创业项目
互联网高科技
广州紫鲸互联网科技有限公司
互联网和科技创新
智能科技公司是互联网公司吗
互联网 卓越科技
宁波青枫互联网科技有限公司
互联网科技与管理
厦门比较好的科技互联网公司
中国互联网有什么科技
互联网与数字科技关系