有些**不會同意程式直接用上面的方式進行訪問,如果識別有問題,那麼站點根本不會響應,所以為了完全模擬瀏覽器的工作,我們需要設定一些headers 的屬性。
importurllib
import
urllib2
url = '
'user_agent = '
mozilla/4.0 (compatible; msie 5.5; windows nt)
'values =
headers =
data =urllib.urlencode(values)
request =urllib2.request(url, data, headers)
response =urllib2.urlopen(request)
page = response.read()
另外,我們還有對付」反盜鏈」的方式,對付防盜煉,伺服器會識別headers中的referer是不是它自己,如果不是,有的伺服器不會響應,所以我們還可以在headers中加入referer
headers =
urllib2 缺省會使用環境變數 http_proxy 來設定 http proxy。假如乙個**它會檢測某一段時間某個ip 的訪問次數,如果訪問次數過多,它會禁止你的訪問。所以你可以設定一些**伺服器來幫助你做工作,每隔一段時間換乙個**,**君都不知道是誰在搗鬼了,這酸爽!
下面一段**說明了**的設定用法
importurllib2
enable_proxy =true
proxy_handler = urllib2.proxyhandler()
null_proxy_handler =urllib2.proxyhandler({})
ifenable_proxy:
opener =urllib2.build_opener(proxy_handler)
else
: opener =urllib2.build_opener(null_proxy_handler)
urllib2.install_opener(opener)
例如下面的**,如果第二個引數data為空那麼要特別指定是timeout是多少,寫明形參,如果data已經傳入,則不必宣告。
importurllib2
response = urllib2.urlopen('
', timeout=10)
//response = urllib2.urlopen('
',data, 10)
可以通過下面的方法把 debug log 開啟,這樣收發包的內容就會在螢幕上列印出來,方便除錯,這個也不太常用,僅提一下
Python爬蟲之urllib模組2
python爬蟲之urllib模組2 pg 55,乙個待畢業待就業的二流大學生。看了一下上一節的反饋,有些同學認為這個沒什麼意義,也有的同學覺得太簡單,關於 beautifulsoup 和lxml 獲取後面的鏈結我們能不能如法炮製呢,我們先來試試。我們把 寫成下面那樣 然後我們現在來試試 結果我們發...
把玩之python爬蟲urllib2
1,什麼是urllib2庫?urllib2是python的乙個獲取urls的元件,通過urlopen函式的形式來提供了乙個非常簡單的介面,根據不同協議獲取urls的能力,urllib2提供了乙個比較復 雜的介面來處理情況,例如 基礎驗證,cookies,和其他。我們分析 response urlli...
Python網路爬蟲 二 urllib2
1.網路爬蟲的架構 2.url管理器的簡單實現 1 存放待爬取url的 set 集合.2 存放未爬取url的 set 集合.3 url管理器應該具有的方法 新增新的url,判斷新增的url是否存在,判斷是否存在待爬取的url,獲取待爬取的url,移動爬取完成的url由未爬取 set 集合至 已爬取 ...