Python爬蟲使用代理proxy抓取網頁

來源:互聯網
上載者:User
代理類型(proxy):透明代理 匿名代理 混淆代理和高匿代理. 這裡寫一些python爬蟲使用代理的知識, 還有一個代理池的類. 方便大家應對工作中各種複雜的抓取問題。

urllib 模組使用代理

urllib/urllib2使用代理比較麻煩, 需要先構建一個ProxyHandler的類, 隨後將該類用於構建網頁開啟的opener的類,再在request中安裝該opener.

代理格式是"http://127.0.0.1:80",如果要帳號密碼是"http://user:password@127.0.0.1:80".

proxy="http://127.0.0.1:80"

# 建立一個ProxyHandler對象proxy_support=urllib.request.ProxyHandler({'http':proxy})# 建立一個opener對象opener = urllib.request.build_opener(proxy_support)# 給request裝載openerurllib.request.install_opener(opener)# 開啟一個urlr = urllib.request.urlopen('http://youtube.com',timeout = 500)

requests 模組 使用代理

requests使用代理要比urllib簡單多了…這裡以單次代理為例. 多次的話可以用session一類構建.

如果需要使用代理,你可以通過為任意要求方法提供 proxies 參數來配置單個請求:

import requestsproxies = {  "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

你也可以通過環境變數 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:3128/",}

python的代理使用非常簡單, 最重要的是要找一個網路穩定可靠的代理,有問題歡迎留言提問

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.