Python爬蟲實踐 四 一些不常用設定

2021-07-13 18:29:44 字數 1768 閱讀 1198

**設定

urllib2缺省會使用環境變數http_proxy來設定 ==http proxy==。假如乙個**它會檢測某一段時間某個ip 的訪問次數,如果訪問次數過多,它會禁止你的訪問。所以你可以設定一些**伺服器來幫助你做工作,每隔一段時間換乙個**,以防被禁止。

設定方法:

import urllib2

enable_proxy = true

proxy_handler = urllib2.proxyhandler()

null_proxy_handler = urllib2.proxyhandler({})

if enable_proxy:

opener = urllib2.build_opener(proxy_handler)

else:

opener = urllib2.build_opener(null_proxy_handler)

urllib2.install_opener(opener)

timeout設定

urlopen方法的第三個引數就是timeout的設定,可以設定等待多久超時,為了解決一些**實在響應過慢而造成的影響。

例如下面的**,如果第二個引數data為空,那麼要特別指定是timeout是多少,寫明形參,如果第二個引數已經寫了data已經傳入,則不必寫timeout=

import urllib2

response = urllib2.urlopen('', timeout=10)

import urllib2

response = urllib2.urlopen('',data, 10)

http 的 put 和 delete 方法

http協議有六種請求方法:

- get

- head

- put

- delete

- post

- options

我們有時候需要用到==put==方式或者==delete==方式請求。

-put:這個方法比較少見。html表單也不支援這個。本質上來講, put和post極為相似,都是向伺服器傳送資料,但它們之間有乙個重要區別:

- put通常指定了資源的存放位置

- 而post則沒有,post的資料存放位置由伺服器自己決定。

-delete:刪除某乙個資源。基本上這個也很少見,不過還是有一些地方比如amazon的s3雲服務裡面就用的這個方法來刪除資源。

如果要使用 http put 和 delete ,只能使用比較低層的 httplib 庫。雖然如此,我們還是能通過下面的方式,使 urllib2 能夠發出 put 或delete 的請求,不過用的次數的確是少,在這裡提一下。

import urllib2

request = urllib2.request(uri, data=data)

request.get_method = lambda: 'put' # or 'delete'

response = urllib2.urlopen(request)

編譯原理程式設計實踐 四 一些輔助函式

目標 生成過程gen 引數 x 要生成的一行 的助記符 y,z 的兩個運算元 本過程用於把生成的目標 寫入目標 陣列,供後面的直譯器解釋執行 void gen fct x,int y,int z code cx f x code cx l y code cx a z cx 移動cx指標指向下乙個空位...

Python爬蟲實踐

爬取的是盜版網的 免費 三寸人間 閱讀 請支援正版 以下是源 from urllib import request from bs4 import beautifulsoup import re 獲取html原始碼 response request.urlopen html response.rea...

python 爬蟲實踐

詳解 python3 urllib requests 官方文件 timeout 引數是用於設定請求超時時間。單位是秒。cafile和capath代表 ca 證書和 ca 證書的路徑。如果使用https則需要用到。context引數必須是ssl.sslcontext型別,用來指定ssl設定 cadef...