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