Python之網路爬蟲(1)

2021-09-29 16:25:29 字數 2165 閱讀 8626

將**中所有的出版社資訊都爬取出來。**如下:

可以看到,網頁中有許多的出版社。下面我們用**將所有出版社的名字爬取出來,並儲存在檔案中。

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...