可以看到,網頁中有許多的出版社。下面我們用**將所有出版社的名字爬取出來,並儲存在檔案中。
import urllib.request
import re
url = ""
data = urllib.request.urlopen(url).read()
data = data.decode("utf-8")
pat = '(.*?)
'mydata = re.compile(pat).findall(data) #生成了乙個列表
for i in range(0, len(mydata)):
fh.write(mydata[i] + "\n")
fh.close()
執行後,我們來看一下結果:
嗯,很成功……
可以將目標網頁一次性爬到本地。我們試一下將計算機二級考試的官網爬取到本地:
import urllib.request
檢視爬到的網頁,大概長這個樣子:
使用該函式,可以清除快取
可以了解當前環境的資訊,例項如下:
獲取當前爬取網頁的狀態碼,不同的狀態碼代表不同的資訊。
file = urllib.request.urlopen("")
print(file.getcode())
#200
print(file.geturl())
#
由於網路速度或伺服器的問題,當我們訪問乙個**,如果網頁長時間未響應,系統會判斷該網頁超時,無法開啟網頁。但是有的時候我們需要根據自己的需要來設定超時的時長。比如我們希望2秒鐘沒有反應,及判斷為超時,那麼timeout的值就是2。舉例:
file = urllib.request.urlopen("", timeout=1)
使用python的idle執行,會報錯,因為這個**伺服器不夠強因此很難在1秒鐘以內做出反應。如果有些**的伺服器比較差,我們可以將timeout的值設定的大一些。
for i in range(0, 100):
try:
file = urllib.request.urlopen("",timeout=0.5)
data = file.read()
print(len(data))
except exception as e:
print("出現異常:" + str(e))
#14165
14165
14165
14165
14165
出現異常:14165
14165
...略
Python網路爬蟲之框架1
scrapy不是乙個簡單的函式功能庫,而是乙個爬蟲框架 爬蟲框架 engine 已有的,核心,控制所有模組之間的資料流,根據條件觸發事件 scheduler 已有的,對所有的爬蟲請求進行排程管理 item pipelines 框架出口,使用者編寫,以流水線方式處理spider產生的爬取項,由一組操作...
python 網路爬蟲(1)
安裝 request庫 1,執行裡面輸入cmd直接輸入pip install requests回車,即可安裝 2,直接在終端輸入python進入python自帶的idle c users ftsdata 02 python 輸入python進入idle 匯入requests庫 r requests....
Python網路爬蟲學習(1)
使用python爬取amazon上的商品資訊 簡單使用beautifulsoup 以下內容是根據mooc課程 python網路爬蟲與資訊提取 北京理工大學 的第一周和第二週第一單元的部分學習記錄。path root my url.split 1 以名字儲存 r requests.get my url...