Python爬蟲基礎——urllib.request
阿新 • • 發佈:2018-12-10
#-*- coding:UTF-8 -*- #Author Chen Da import urllib.request import random # 所謂網頁抓取,就是把URL地址中指定的網路資源從網路流中讀取出來; # User-Agent是爬蟲與反爬蟲的第一步,養成好習慣,傳送請求帶上 。 ua_headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0' } ''' #user-agent也 可以做成一個列表 ua_headers_list = [ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0' 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0' 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0' 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0' ] #然後在列表裡面隨機選擇一個User-Agent ua_headers = random.choice(ua_headers_list) ''' # 通過urllib.request.Request()方法構造一個請求物件 request = urllib.request.Request('http://www.baidu.com/',headers=ua_headers) # 向指定的url地址傳送請求,並返回伺服器相應的類檔案物件; # urlopen底層實際上是一個open; # urlopen中沒寫data請求是get,寫了是post請求; response = urllib.request.urlopen('http://www.baidu.com/') # 伺服器返回的類檔案物件支援python檔案物件的操作方法 # 對返回的檔案物件用read()方法就是讀取檔案裡的全部內容,返回字串 html = response.read() #列印相應內容 #這裡列印的就是網頁的html原始碼 print(html) #返回HTTP的響應碼,成功返回200,4伺服器頁面出錯,5伺服器問題 print(response.getcode()) #返回實際資料的實際url,防止重定向403 print(response.geturl()) #返回伺服器相應的HTTP報頭 print(response.info())