py3.x:
變化:
import urllib.request
file=urllib.request.urlopen('')
data=file.read() #讀取全部
dataline=file.readline() #讀取一行內容
fhandle=open("./1.html","wb") #將爬取的網頁儲存在本地
fhandle.write(data)
fhandle.close()
應用場景:有些網頁為了防止別人惡意採集其資訊所以進行了一些反爬蟲的設定,而我們又想進行爬取。
解決方法:設定一些headers
資訊(user-agent
),模擬成瀏覽器去訪問這些**。
應用場景:使用同乙個ip去爬取同乙個**上的網頁,久了之後會被該**伺服器遮蔽。
解決方法:使用**伺服器。 (使用**伺服器去爬取某個**的內容的時候,在對方的**上,顯示的不是我們真實的ip位址,而是**伺服器的ip位址)
應用場景:爬取的網頁涉及登入資訊。訪問每乙個網際網路頁面,都是通過http
協議進行的,而http
協議是乙個無狀態協議,所謂的無狀態協議即無法維持會話之間的狀態。
#使用http.cookiejar.cookiejar()建立cookiejar物件
#使用httpcookieprocessor建立cookie處理器,並以其為引數構建opener物件
#將opener安裝為全域性
url2='' #開啟test2.html檔案,會發現此時會保持我們的登入資訊,為已登入狀態。也就是說,對應的登入狀態已經通過cookie儲存。
reponse2=urllib.request.urlopen(url)
fhandle2=open('./test2.html','wb')
fhandle2.write(reponse2.read())
fhandle2.close()
Python3中urllib的改變
python2中的urllib模組,在python3中被修改為 urllib.request extensible library for opening urls urllib.response response classes used by urllib urllib.parse parse ...
Python3中urllib使用介紹
urllin2庫 在pytho2.x中使用import urllib 對應的,在python3.x中會使用import urllib.request,urllib.error,urllib.parse。在pytho2.x中使用import urlparse 對應的,在python3.x中會使用imp...
Python3中urllib使用介紹
py2.x urllib庫 urllin2庫 py3.x urllib庫 變化 在pytho2.x中使用import urllib2 對應的,在python3.x中會使用import urllib.request,urllib.error。在pytho2.x中使用import urllib 對應的,...