Python3爬蟲(一)抓取網頁的html

2021-07-26 13:13:43 字數 1774 閱讀 8174

因為**只有幾行,所以可以先貼**:

import  urllib.request

url = r''

res = urllib.request.urlopen(url)

html = res.read().decode('utf-8')

print(html)

第一行,匯入 urllib庫的request模組

第二行,指定要抓取的網頁url,必須以http開頭的

第三行,呼叫 urlopen()從伺服器獲取網頁響應(respone),其返回的響應是乙個例項

第四行,呼叫返回響應示例中的read()函式,即可以讀取html,但需要進行解碼,具體解碼寫什麼,要在你要爬取的**右鍵,檢視源**,

紅框中的 charset= 則表示編碼格式,我要爬取的網頁編碼為 utf-8,所以,解碼我也填utf-8,如果是gbk2313,則填寫的是gbk

(更為簡單的方法是在程式中呼叫info()獲取網頁頭部來檢視編碼方式:)

檢視網頁的頭部資訊以確定網頁的編碼方式:

import urllib.request

res = urllib.request.urlopen('')

print(res.info()) #info()方法 用來獲取網頁頭部

執行結果:

可以看出次網頁的編碼是 gbk。

第五行,列印就行。

但上面的寫法是裸奔型寫法,就是沒有頭部的,有一些網頁你沒有頭部是不能訪問的,會返回 403錯誤。

最正式的做法是仿照http的過程,在用爬蟲獲取網頁的時候,加入頭部,偽裝成瀏覽器。

http 其實就是 請求/響應模式,永遠都是 客戶端向服務端傳送請求,然後服務端再返回響應。

有乙個問題就是 頭部改怎麼加?可以開啟你的瀏覽器,按f12,(我用的是谷歌瀏覽器)

f12開啟開發者工具模式後,進入乙個隨便乙個網頁,開發者工具就會有東西出現

雙擊name欄的任意乙個,在headers 一欄會有個 user-agent ,複製藍色部分,藍色部分就是頭部。再把藍色部分加入到爬蟲程式中,見下面**:

這種方式是推薦的

import urllib.request

url = r''

req = urllib.request.request(url=url,headers=headers)

res = urllib.request.urlopen(req)

html = res.read().decode('utf-8')

print(html)

注意:urllib.request.request()用於向服務端傳送請求,就如 http 協議客戶端想服務端傳送請求

而 urllib.request.urlopen()則相當於伺服器返回的響應

Python3 爬蟲例項(一) 簡單網頁抓取

在著手寫爬蟲之前,要先把其需要的知識線路理清楚。http是hyper text transfer protocol 超文字傳輸協議 的縮寫。它的發展是全球資訊網協會 world wide web consortium 和internet工作小組ietf internet engineering ta...

python3 爬蟲抓取網頁出現亂碼問題解決方法

python抓取網頁並寫到本地檔案中,出現亂碼問題的關鍵有兩處 抓取網頁資料後是否正確解碼 正確解碼後的html字串寫入檔案時是否正確編碼 要解決這兩個問題,首先要知道該網頁是如何編碼的,先看看下面 import requests head url resp requests.get url,hea...

Python3網頁抓取urllib

開啟網頁的過程其實就是瀏覽器作為乙個瀏覽的 客戶端 向伺服器端傳送了一次請求,把伺服器端的檔案 抓 到本地,再進行解釋 展現。爬蟲最主要的處理物件就是url,它根據url位址取得所需要的檔案內容,然後對它進行進一步的處理。網頁抓取,就是把url位址中指定的網路資源從網路流中讀取出來,儲存到本地。類似...