準備開始寫一些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())
執行這個程式我們得到的結果是:200,這就說明我們的訪問的網頁是正常的,我們可以安心解析自己需要的東西了。#coding:utf-8
from urllib.request import urlopen
html=urlopen("")
print(html.getcode())
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....