Python3 網路爬蟲 1

2021-08-20 05:45:19 字數 3641 閱讀 2785

準備開始寫一些python3關於爬蟲相關的東西,主要是一些簡單的網頁爬取,給身邊的同學入門看。

首先我們向網路伺服器傳送get請求以獲取具體的網頁,再從網頁中讀取html內容。

[python]view plain

copy

print?

#coding:utf-8

from urllib.request import urlopen  

html=urlopen(」  

print(html.read())  

#coding:utf-8 

from urllib.request import urlopen

html=urlopen("")

print(html.read())

當我們執行這個程式後會得到如下的結果:

大家仔細看我們拿回的網頁**會發現,這個程式中拿回來的html中為什麼會有些\xe8\xb4\xb4\xe5的東西,其實呢這個是編碼問題,大家仔細觀察會發現,在html**最前面有b這個字母,後面的html**用引號括起來了,這就表示這是個bytes型別的位元組序列,在這種型別的序列中,中文會用16進製制進行表示,所以我們看不到中文了。關於這個問題呢,是python中的編碼問題,我們可以通過解碼操作來對bytes進行解碼,這就就要用到decode函式了

下面我們只要稍微修改下**:

[python]view plain

copy

print?

#coding:utf-8

from urllib.request import urlopen  

html=urlopen(」  

print(html.read().decode(『utf-8』))  

#coding:utf-8 

from urllib.request import urlopen

html=urlopen("")

print(html.read().decode('utf-8'))

當我們再次執行這個程式會得到如下的結果:

[python]view plain

copy

print?

現在我們就可以讀懂這個html了。

一番觀賞之後,我們來解釋下這個程式中用到的技術啊,程式中我們匯入了乙個urllib包中的函式用於訪問網頁。

首先來介紹下urlopen函式:

函式原型:def urlopen(url, data=none, proxies=none)

形參:(2)data : 向指定的url傳送的資料字串,get和post都可以,但必須符合標準格式,即key=value&key1=value1….

(3)proxies : 

**伺服器位址字典,如果未指定,在windows平台上則依據ie的設定,不支援需要驗證的**伺服器。

例如:proxies = ,該例子表示乙個http**伺服器

從**可以看到,我只用到了第乙個引數url,後兩個引數是可選的,可以根據自己的需求進行定義的,也可以不指定,這時使用的是預設的引數。

返回值:

返回乙個類似檔案物件的物件(file_like) object

該物件擁有的方法為:

info()返回從伺服器傳回的mime標籤頭,即網頁的頭部資訊。

geturl()返回真實的url,之所以稱為真實,是因為對於某些重定向的url,將返回被重定後的,大部分情況下可以認為就是我們輸入的**

其它的函式如 read()、readline()、 readlines()、fileno()、close()則和我們的檔案物件類似了。

下面我們來展示下info()的用法:

[python]view plain

copy

print?

#coding:utf-8

from urllib.request import urlopen  

html=urlopen(」  

print(html.info())  

#coding:utf-8 

from urllib.request import urlopen

html=urlopen("")

print(html.info())

程式執行的結果為:

雖然這個返回的結果是很多的,但都是以鍵值對的形式展現給我們的,還是比較清晰易於理解的。

我們看看這句:content-type: text/html; charset=utf-8,它告訴我們這個網頁的文字格式是text/html,字符集是utf-8,後面的一些資訊大家有興趣的可以自己去查查資料,這裡就不一一說明了。

下面我們來看看網頁的狀態碼:

[python]view plain

copy

print?

#coding:utf-8

from urllib.request import urlopen  

html=urlopen(」  

print(html.getcode())  

#coding:utf-8 

from urllib.request import urlopen

html=urlopen("")

print(html.getcode())

執行這個程式我們得到的結果是:200,這就說明我們的訪問的網頁是正常的,我們可以安心解析自己需要的東西了。

Python 3 網路爬蟲

python 原來還可以這樣玩 python爬蟲,破解有道翻譯介面引數 破解有道翻譯反爬蟲機制 python3網路爬蟲快速入門實戰解析 article details 78123502 python3網路爬蟲 五 python3安裝scrapy article details 60156205 py...

初識Python3網路爬蟲

定義 網路爬蟲 web spider 又被稱為網頁蜘蛛,是一種按照一定的規則,自動地抓取 資訊的程式或者指令碼。爬蟲其實是通過編寫程式,模擬瀏覽器上網,然後讓其去網際網路上抓取資料的過程。爬蟲的價值 抓取網際網路上的資料,為我所用,有了大量的資料,就如同有了乙個資料銀行一樣,下一步就是如何將這些資料...

自學Python 3網路爬蟲(二)

import urllib import urllib.request data data word 廣東珠海 url values urllib.parse.urlencode data url full url url url values print full url data urllib....