1. 程式人生 > >Python爬蟲基礎——urllib.request

Python爬蟲基礎——urllib.request

#-*- 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())