电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python爬蟲(chóng)---requests庫(kù)的用法詳解

瀏覽:52日期:2022-07-09 15:56:07

requests是python實(shí)現(xiàn)的簡(jiǎn)單易用的HTTP庫(kù),使用起來(lái)比urllib簡(jiǎn)潔很多

因?yàn)槭堑谌綆?kù),所以使用前需要cmd安裝

pip install requests

安裝完成后import一下,正常則說(shuō)明可以開(kāi)始使用了。

基本用法:

requests.get()用于請(qǐng)求目標(biāo)網(wǎng)站,類(lèi)型是一個(gè)HTTPresponse類(lèi)型

import requests

response = requests.get(’http://www.baidu.com’)print(response.status_code) # 打印狀態(tài)碼print(response.url) # 打印請(qǐng)求urlprint(response.headers) # 打印頭信息print(response.cookies) # 打印cookie信息print(response.text) #以文本形式打印網(wǎng)頁(yè)源碼print(response.content) #以字節(jié)流形式打印

運(yùn)行結(jié)果:

狀態(tài)碼:200

url:www.baidu.com

headers信息

python爬蟲(chóng)---requests庫(kù)的用法詳解

各種請(qǐng)求方式:

import requestsrequests.get(’http://httpbin.org/get’)requests.post(’http://httpbin.org/post’)requests.put(’http://httpbin.org/put’)requests.delete(’http://httpbin.org/delete’)requests.head(’http://httpbin.org/get’)requests.options(’http://httpbin.org/get’)

基本的get請(qǐng)求

import requestsresponse = requests.get(’http://httpbin.org/get’)print(response.text)

結(jié)果

python爬蟲(chóng)---requests庫(kù)的用法詳解

帶參數(shù)的GET請(qǐng)求:

第一種直接將參數(shù)放在url內(nèi)

import requestsresponse = requests.get(http://httpbin.org/get?name=gemey&age=22)print(response.text)

結(jié)果

python爬蟲(chóng)---requests庫(kù)的用法詳解

另一種先將參數(shù)填寫(xiě)在dict中,發(fā)起請(qǐng)求時(shí)params參數(shù)指定為dict

import requestsdata = { ’name’: ’tom’, ’age’: 20}response = requests.get(’http://httpbin.org/get’, params=data)print(response.text)

結(jié)果同上

解析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()))

結(jié)果

python爬蟲(chóng)---requests庫(kù)的用法詳解

簡(jiǎn)單保存一個(gè)二進(jìn)制文件

二進(jìn)制內(nèi)容為response.content

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)

為你的請(qǐng)求添加頭信息

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方法,代理參數(shù)也要是一個(gè)dict

這里使用requests庫(kù)爬取了IP代理網(wǎng)站的IP與端口和類(lèi)型

因?yàn)槭敲赓M(fèi)的,使用的代理地址很快就失效了。

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’<td data-title='IP'>(.+)</td>’ iplist = re.findall(regex, html) regex2 = ’<td data-title='PORT'>(.+)</td>’ portlist = re.findall(regex2, html) regex3 = r’<td data-title='類(lèi)型'>(.+)</td>’ 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.kuaidaili.com/free/’ get_ipport(get_html(url))

結(jié)果:

python爬蟲(chóng)---requests庫(kù)的用法詳解

基本POST請(qǐng)求:

import requestsdata = {’name’:’tom’,’age’:’22’}response = requests.post(’http://httpbin.org/post’, data=data)

python爬蟲(chóng)---requests庫(kù)的用法詳解

獲取cookie

#獲取cookieimport requestsresponse = requests.get(’http://www.baidu.com’)print(response.cookies)print(type(response.cookies))for k,v in response.cookies.items(): print(k+’:’+v)

結(jié)果:

python爬蟲(chóng)---requests庫(kù)的用法詳解

會(huì)話(huà)維持

import requestssession = requests.Session()session.get(’http://httpbin.org/cookies/set/number/12345’)response = session.get(’http://httpbin.org/cookies’)print(response.text)

結(jié)果:

python爬蟲(chóng)---requests庫(kù)的用法詳解

證書(shū)驗(yàn)證設(shè)置

import requestsfrom requests.packages import urllib3urllib3.disable_warnings() #從urllib3中消除警告response = requests.get(’https://www.12306.cn’,verify=False) #證書(shū)驗(yàn)證設(shè)為FALSEprint(response.status_code)打印結(jié)果:200

超時(shí)異常捕獲

import requestsfrom requests.exceptions import ReadTimeouttry: res = requests.get(’http://httpbin.org’, timeout=0.1) print(res.status_code)except ReadTimeout: print(timeout)

異常處理

在你不確定會(huì)發(fā)生什么錯(cuò)誤時(shí),盡量使用try...except來(lái)捕獲異常

所有的requests exception:

Exceptions

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’)

25行代碼帶你爬取4399小游戲數(shù)據(jù)

import requestsimport parselimport csvf = open(’4399游戲.csv’, mode=’a’, encoding=’utf-8-sig’, newline=’’)csv_writer = csv.DictWriter(f, fieldnames=[’游戲地址’, ’游戲名字’])csv_writer.writeheader()for page in range(1, 106): url = ’http://www.4399.com/flash_fl/5_{}.htm’.format(page) headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36’ } response = requests.get(url=url, headers=headers) response.encoding = response.apparent_encoding selector = parsel.Selector(response.text) lis = selector.css(’#classic li’) for li in lis: dit ={} data_url = li.css(’a::attr(href)’).get() new_url = ’http://www.4399.com’ + data_url.replace(’http://’, ’/’) dit[’游戲地址’] = new_url title = li.css(’img::attr(alt)’).get() dit[’游戲名字’] = title print(new_url, title) csv_writer.writerow(dit)f.close()

到此這篇關(guān)于python爬蟲(chóng)---requests庫(kù)的用法詳解的文章就介紹到這了,更多相關(guān)python requests庫(kù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 水平筛厂家-三轴椭圆水平振动筛-泥沙震动筛设备_山东奥凯诺矿机 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 金库门,金库房,金库门厂家,金库门价格-河北特旺柜业有限公司 | 北京发电机出租_发电机租赁_北京发电机维修 - 河北腾伦发电机出租 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | Win10系统下载_32位/64位系统/专业版/纯净版下载 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 分类168信息网 - 分类信息网 免费发布与查询 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 中医中药治疗血小板减少-石家庄血液病肿瘤门诊部 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 上海噪音治理公司-专业隔音降噪公司-中广通环保 | 美的商用净水器_美的直饮机_一级代理经销商_Midea租赁价格-厂家反渗透滤芯-直饮水批发品牌售后 | 广州企亚 - 数码直喷、白墨印花、源头厂家、透气无手感方案服务商! | 快速门厂家批发_PVC快速卷帘门_高速门_高速卷帘门-广州万盛门业 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 千淘酒店差旅平台-中国第一家针对TMC行业的酒店资源供应平台 | 无刷电机_直流无刷电机_行星减速机-佛山市藤尺机电设备有限公司 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 气动绞车,山东气动绞车,气动绞车厂家-烟台博海石油机械有限公司 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 | 厌氧工作站-通用型厌氧工作站-上海胜秋科学仪器有限公司 | 乐泰胶水_loctite_乐泰胶_汉高乐泰授权(中国)总代理-鑫华良供应链 | 石油/泥浆/不锈钢防腐/砂泵/抽砂泵/砂砾泵/吸砂泵/压滤机泵 - 专业石油环保专用泵厂家 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 江苏农村商业银行招聘网_2024江苏农商行考试指南_江苏农商行校园招聘 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 3A别墅漆/3A环保漆_广东美涂士建材股份有限公司【官网】 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 建筑资质代办_工程施工资质办理_资质代办公司_北京众聚企服 | 北京易通慧公司从事北京网站优化,北京网络推广、网站建设一站式服务商-北京网站优化公司 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 |