python爬蟲快速響應(yīng)服務(wù)器的做法
不論是打開網(wǎng)頁(yè)或者爬取一些資料的時(shí)候,我們想要的是計(jì)算機(jī)能在最短的時(shí)間內(nèi)運(yùn)行出結(jié)果,不然等待的時(shí)間過(guò)長(zhǎng)會(huì)影響下一步工作的計(jì)劃。這時(shí)候我們可以給計(jì)算機(jī)一個(gè)指令,限制最久能等待的時(shí)間,在我們能接受的時(shí)間內(nèi)運(yùn)行出結(jié)果。那么這個(gè)指令方法是什么呢?接下來(lái)我們一起看看吧。
requests之所以稱為“HTTP for human”,因?yàn)槠浞庋b層次很高,其中一處體現(xiàn)就在:requests會(huì)自動(dòng)處理服務(wù)器響應(yīng)的重定向。我在做搜狗微信公眾號(hào)抓取的時(shí)候,搜狗搜索列表頁(yè)面的公眾號(hào)文章地址,其實(shí)不是微信的地址而需要請(qǐng)求到搜狗到服務(wù)器做重定向,而requests的默認(rèn)處理則是將整個(gè)過(guò)程全部搞定,對(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í)間太長(zhǎng)了,我們希望在指定時(shí)間內(nèi)完事,或者直接停止這個(gè)請(qǐng)求,這時(shí)候的做法是:
In [1]: r = requests.get(’http://xlzd.me’, timeout=3)
timeout表示這次請(qǐng)求最長(zhǎng)我最長(zhǎng)只等待多少秒
拓展:
為requests套上一層代理的做法也非常簡(jiǎn)單:
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. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)2. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息3. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲4. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向5. CSS hack用法案例詳解6. asp中response.write("中文")或者js中文亂碼問(wèn)題7. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法8. PHP設(shè)計(jì)模式中工廠模式深入詳解9. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明10. ASP實(shí)現(xiàn)加法驗(yàn)證碼
