Python 3 爬蟲學習筆記1 連接

此學習筆記整理于 Ryan Mitchell Web Scraping with Python- Collecting Data from the Modern Web (2015) Chapter 1 Your first web scr

首先,需要安裝BeautifulSoup4 庫。


上面動圖里有個錯誤,在命令窗口輸入的應該是 pip install BeautifulSoup4,少了一個4.

from urllib.request import urlopen #這一步是用來加載庫的函數

from bs4 import BeautifulSoup #同上

html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html") #打開這個網址

bsObj = BeautifulSoup(html.read()); #首先,讀取這個網址回復的東西,然后用BeautifulSoup 來美化它,為什么要美化,因為這樣網址發給我們的東西可以更結構化

print(bsObj.h1) #打印這個結構化的h1,什么是h1先不管,就是一個標簽,這個下面有著一些內容。以后可以根據自己需要來選取標簽。

捋一捋,打開了網址,讀取對方發送過來的東西,然后美化它!美化后相當于有了索引,就可以按圖索驥了!

如果連接不成功呢?!怎么會不成功呢?

一,如果頁面不存在

try: #事先不知道頁面是否存在

from urllib.request import urlopen

from urllib.error import HTTPError

html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html")

except HTTPError as e:

print(e)

else:

print('There is a page!')

以上代碼顯示‘There is a page!’。在這里,這個頁面確存在。你也可以試一下‘http://www.pythonscraping.com/exercises/exercise3.htm’ 這個不存在,你看看返回的是什么?(HTTP Error 404: Not Found)

二,如果是服務器出現問題了,網站有問題。(這到底是咋回事我也不知道啊)

from urllib.request import urlopen

from urllib.error import URLError

try:

html = urlopen("http://www.baidu.com/")

except URLError as e:

print('cannot get access')

else:

print('the server is ok')

會返回‘the server is ok’,說明網站沒問題,頁面就不一定了。

有關于URLError 和 HTTPError的姿勢,請移步:http://cuiqingcai.com/961.html

三, 如果是我們需要的內容不存在呢?

連接上了server,就是解決了二,然后打開了網頁并返回了數據,就是解決了一,但是!如果我們需要的內容不在呢?比如,沒有這個索引(tag)。如果沒有這個tag,當我們用BeautifulSoup讀取tag下面的數據就會返回None,如果沒有這個tag,還要讀取tag下面一層tag的數據,那么就會出現AttributeError.

總結一下:

以上代碼都沒有縮進,下面我用圖片。


def 上面定義了一個函數,這個不用管。如果不會,看下面


好不容易寫完了,寫的過程自己確實學了挺多。

P.S.:沒能上車的小伙伴歡迎留言,如果我會我直接回答你!如果不會,我谷歌后回答你!如果要加我微信,不行。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容