爬蟲快速入門——Get請求的使用

Blockchain_Key發表於2020-10-25

直接上程式碼,解釋在註釋,不懂評論留言,必回

# 專案名稱:
# 專案簡介:
# 作   者:key
# 開發時間:2020/10/25 8:54

from urllib.request import urlopen, Request  # 開啟url,和封裝請問
from fake_useragent import UserAgent  # 獲取headers
from urllib.parse import quote  # 轉為為url使用的Unicode編碼
from urllib.parse import urlencode  # 和quote功能相同,但是傳入字典,可以一次轉化多個引數,並完成拼接
import random

# 這是我們直接在百度上搜尋武漢學院,得到的url
# url ='https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=%E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2&oq=%25E6%25AD' \
#       '%25A6%25E6%25B1%2589%25E5%25AD%25A6%25E9%2599%25A2&rsv_pq=ad90e4730010b099&rsv_t=cbd2ILLVJvfZhsQ2Z' \
#       '%2BtWYSyWCVqrPyPGSDeK4L2E%2FXMbeuI2lbvliJVzzxs&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t '


# 但實際的呢?我們發出請求響應測試,只需要https://www.baidu.com/s?wd='武漢學院'就行了
# url ="https://www.baidu.com/s?wd='武漢學院'"

# 但是呢,中文的武漢學院,url並不能識別
# 所以,我們要用url.parse裡面的quote物件,轉化為url可以識別的unicode編碼
# print(quote('武漢學院'))    # 輸出資訊: %E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2
# url = "https://www.baidu.com/s?wd='%E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2'" # 如果在瀏覽器訪問 wd之後就不需要加字串

# 一般使用{}.format(quote("輸入資訊"))去替換
url = 'https://www.baidu.com/s?wd={}'.format(quote('武漢學院'))

# 使用urlencode進行轉化
# args = {
#     'wd': "武漢學院",
#     "ie": 'utf-8'
# }
# url = str("https://www.baidu.com/s?{}".format(urlencode(args)))
# print('https://www.baidu.com/s?{}'.format(urlencode(args)))
# 列印的資訊:https://www.baidu.com/s?wd=%E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2&ie=utf-8

# 開發者工具獲取headers
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/84.0.4147.89 Safari/537.36 "
}

# 建立物件獲取headers
# headers = {
#     "User-Agent": UserAgent().random
# }


# 封裝
request = Request(url, headers=headers)

# 訪問
response = urlopen(request)

# 列印返回資訊,一定要用decode()轉化,才是可讀資料
print(response.read().decode())

相關文章