python爬蟲快速響應(yīng)服務(wù)器的做法
不論是打開網(wǎng)頁或者爬取一些資料的時(shí)候,我們想要的是計(jì)算機(jī)能在最短的時(shí)間內(nèi)運(yùn)行出結(jié)果,不然等待的時(shí)間過長會(huì)影響下一步工作的計(jì)劃。這時(shí)候我們可以給計(jì)算機(jī)一個(gè)指令,限制最久能等待的時(shí)間,在我們能接受的時(shí)間內(nèi)運(yùn)行出結(jié)果。那么這個(gè)指令方法是什么呢?接下來我們一起看看吧。
requests之所以稱為“HTTP for human”,因?yàn)槠浞庋b層次很高,其中一處體現(xiàn)就在:requests會(huì)自動(dòng)處理服務(wù)器響應(yīng)的重定向。我在做搜狗微信公眾號(hào)抓取的時(shí)候,搜狗搜索列表頁面的公眾號(hào)文章地址,其實(shí)不是微信的地址而需要請(qǐng)求到搜狗到服務(wù)器做重定向,而requests的默認(rèn)處理則是將整個(gè)過程全部搞定,對(duì)此可以這樣:
In [1]: r = requests.get(’http://xlzd.me’, allow_redirects=False)
allow_redirects參數(shù)為False則表示不會(huì)主動(dòng)重定向。
另外,有時(shí)候?qū)Ψ骄W(wǎng)站的響應(yīng)時(shí)間太長了,我們希望在指定時(shí)間內(nèi)完事,或者直接停止這個(gè)請(qǐng)求,這時(shí)候的做法是:
In [1]: r = requests.get(’http://xlzd.me’, timeout=3)
timeout表示這次請(qǐng)求最長我最長只等待多少秒
拓展:
為requests套上一層代理的做法也非常簡單:
import requestsproxies = { 'http': 'http://192.168.31.1:3128', 'https': 'http://10.10.1.10:1080',}requests.get('http://xlzd.me', proxies=proxies)
到此這篇關(guān)于python爬蟲快速響應(yīng)服務(wù)器的做法的文章就介紹到這了,更多相關(guān)python爬蟲中如何快速響應(yīng)服務(wù)器內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. 編程語言PHP在Web開發(fā)領(lǐng)域的優(yōu)勢(shì)在哪?3. 什么是python的自省4. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁效果(實(shí)例代碼)5. 解決Android studio xml界面無法預(yù)覽問題6. 基于android studio的layout的xml文件的創(chuàng)建方式7. Android如何加載Base64編碼格式圖片8. Springboot Druid 自定義加密數(shù)據(jù)庫密碼的幾種方案9. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)10. 圖文詳解vue中proto文件的函數(shù)調(diào)用

網(wǎng)公網(wǎng)安備