Python開(kāi)發(fā)中爬蟲(chóng)使用代理proxy抓取網(wǎng)頁(yè)的方法示例
本文實(shí)例講述了Python開(kāi)發(fā)中爬蟲(chóng)使用代理proxy抓取網(wǎng)頁(yè)的方法。分享給大家供大家參考,具體如下:
代理類(lèi)型(proxy):透明代理 匿名代理 混淆代理和高匿代理. 這里寫(xiě)一些python爬蟲(chóng)使用代理的知識(shí), 還有一個(gè)代理池的類(lèi). 方便大家應(yīng)對(duì)工作中各種復(fù)雜的抓取問(wèn)題。
urllib 模塊使用代理
urllib/urllib2使用代理比較麻煩, 需要先構(gòu)建一個(gè)ProxyHandler的類(lèi), 隨后將該類(lèi)用于構(gòu)建網(wǎng)頁(yè)打開(kāi)的opener的類(lèi),再在request中安裝該opener.
代理格式是"http://127.0.0.1:80",如果要賬號(hào)密碼是"http://user:password@127.0.0.1:80".
proxy="http://127.0.0.1:80" # 創(chuàng)建一個(gè)ProxyHandler對(duì)象 proxy_support=urllib.request.ProxyHandler({'http':proxy}) # 創(chuàng)建一個(gè)opener對(duì)象 opener = urllib.request.build_opener(proxy_support) # 給request裝載opener urllib.request.install_opener(opener) # 打開(kāi)一個(gè)url r = urllib.request.urlopen('http://youtube.com',timeout = 120)
requests 模塊 使用代理
requests使用代理要比urllib簡(jiǎn)單多了…這里以單次代理為例. 多次的話可以用session一類(lèi)構(gòu)建.
如果需要使用代理,你可以通過(guò)為任意請(qǐng)求方法提供 proxies 參數(shù)來(lái)配置單個(gè)請(qǐng)求:
import requests proxies = { "http": "http://127.0.0.1:3128", "https": "http://127.0.0.1:2080", } r=requests.get("http://youtube.com", proxies=proxies) print r.text
你也可以通過(guò)環(huán)境變量 HTTP_PROXY 和 HTTPS_PROXY 來(lái)配置代理。
export HTTP_PROXY="http://127.0.0.1:3128" export HTTPS_PROXY="http://127.0.0.1:2080" python >>> import requests >>> r=requests.get("http://youtube.com") >>> print r.text
若你的代理需要使用HTTP Basic Auth,可以使用 http://user:password@host/ 語(yǔ)法:
proxies = { "http": "http://user:pass@127.0.0.1:3309/", }
python的代理使用非常簡(jiǎn)單, 最重要的是要找一個(gè)網(wǎng)絡(luò)穩(wěn)定可靠的代理。
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python 內(nèi)置函數(shù)memoryview(obj)的具體用法
本篇文章主要介紹了Python 內(nèi)置函數(shù)memoryview(obj)的具體用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11跟老齊學(xué)Python之玩轉(zhuǎn)字符串(2)更新篇
本文是玩轉(zhuǎn)字符串的續(xù)篇,繼續(xù)對(duì)字符串的連接方法進(jìn)行介紹,以及字符串復(fù)制、字符串長(zhǎng)度、字符大小寫(xiě)的轉(zhuǎn)換。非常不錯(cuò)的文章,希望對(duì)大家有所幫助2014-09-09tensorflow入門(mén):TFRecordDataset變長(zhǎng)數(shù)據(jù)的batch讀取詳解
今天小編就為大家分享一篇tensorflow入門(mén):TFRecordDataset變長(zhǎng)數(shù)據(jù)的batch讀取詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python編程ContextManager上下文管理器講解
這篇文章主要介紹了Python編程中對(duì)Context Manager上下文管理器的詳解說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-09-09Python進(jìn)程間通信Queue消息隊(duì)列用法分析
這篇文章主要介紹了Python進(jìn)程間通信Queue消息隊(duì)列用法,結(jié)合實(shí)例形式分析了基于Queue的進(jìn)程間通信相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2019-05-05用python 批量更改圖像尺寸到統(tǒng)一大小的方法
下面小編就為大家分享一篇用python 批量更改圖像尺寸到統(tǒng)一大小的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Python語(yǔ)言實(shí)現(xiàn)機(jī)器學(xué)習(xí)的K-近鄰算法
今天學(xué)習(xí)的算法是KNN近鄰算法。KNN算法是一個(gè)監(jiān)督學(xué)習(xí)分類(lèi)器類(lèi)別的算法。下面我們來(lái)詳細(xì)的探討下2015-06-06