一 初見網路爬蟲

2021-08-17 01:54:06 字數 2520 閱讀 6840

如何不通過瀏覽器的幫助來格式化和處理資料

本章任務:  首先向網路伺服器傳送get請求以獲取具體網頁,再從網頁讀取html內容,最後做一些簡單的資訊提取,將我們要找的內容分離出來。

一、網路連線

1、網際網路實現過程(待補充)

1.3、python是如何實現的:

from urllib.request import urlopen

html = urlopen("")

print(html.read())

urllib : python的標準庫,,包含了從網路請求資料,處理cookie,甚至改變請求頭和使用者**這些元資料的函式。

urlopen: 開啟並讀取乙個從網路獲取的遠端物件。

二、beautifulsoup

1、功能: 通過定位html標籤來格式化和組織複雜的網路資訊,用簡單易用的python物件為我們展現xml結構資訊。

2、安裝:

mac: sudo easy_install pip        //mac

pip install beautifulsoup4

pip install beautifulsoup4     //  windows: cmd進入 pip.exe 所在資料夾
sudo apt-get install python-bs4  // linux

3、執行

from urllib.request import urlopen

from bs4 import beautifulsoup

html = urlopen("")

bsobj = beautifulsoup(html.read(), "lxml")

# print(bsobj.h1)

print(bsobj)

4、可靠的網路連線

html = urlopen("")
可能出現的異常:

(1)網頁在伺服器上不存在(獲取頁面的時候出錯)

(2)伺服器不存在

第一種,返回http error,「404 page not found」「500 internet server error」

處理異常:

# 返回空值,中斷程式,或者執行另乙個方案

else:

# 程式繼續(若已在上面異常捕獲中返回或中斷)

# 則不需要使用 else ,這段就不會執行。第二種,鏈結打不開或打錯了,urlopen會返回乙個none

if html is none:

print("url is not found")

else:

# 程式繼續

attributeerror:

若要呼叫乙個不存在的標籤,就會出現attributeerror。

print(bsobj.nonexistingtag.sometag)    # 報錯
為避免,需檢查:

try:

badcontent = bsobj.nonexistingtag.anothertag

except attributeerror as e:

print("tag was not found")

else:

if badcontent == none:

print("tag was not found")

else:

print("badcontent")

重新組織**:(返回網頁標題)
from urllib.request import urlopen

第1章總結 初見網路爬蟲

1.urllib 還是 urllib2 如果你用過 python 2.x 裡的 urllib2 庫,可能會發現 urllib2 與 urllib 有些不同。在 python 3.x 裡,urllib2 改名為 urllib,被分成一些子模組 urllib.request urllib.parse 和...

python資料採集1 初見爬蟲

註解 現在本地的hosts檔案中找url對應的ip,找不到舊區dns伺服器中找 根據ip找到伺服器,建立tcp連線 將url後面的一坨請求傳送給伺服器 伺服器根據收到的請求,將對應的資源傳送給客戶端 讓我們看看 python 是如何實現的 coding utf 8 created on sun ja...

網路爬蟲一

乙個通用的網路爬蟲的框架如圖所示 網路爬蟲的基本工作流程如下 在爬蟲系統中,待抓取url佇列是很重要的一部分。待抓取url佇列中的url以什麼樣的順序排列也是乙個很重要的問題,因為這涉及到先抓取那個頁面,後抓取哪個頁面。而決定這些url排列順序的方法,叫做抓取策略。下面重點介紹幾種常見的抓取策略 1...