再使用beautiful soup 4時遇到了一些問題,找到了解決方法,通過本博文將遇到的問題和解決方法記錄下來,方便回顧也希望能幫助大家解決類似問題。
遇到這個錯誤的原因是「文件包含以完全不同的編碼編寫的文字」,這時候需要待解析文字的指定編碼方式,通常可以在網頁原始碼中找到網頁的編碼方式,就像下圖:
接著,只需要在原來呼叫beautiful soup的語句中指定編碼方式即可:
soup = beautifulsoup(html, "html.parser",from_encoding="uft-8")
參考博文:
利用bs4獲取標籤下的子元素內容時可以利用「本元素.子元素標籤」的方式訪問,但是這樣的訪問方式預設是返回對應標籤的第乙個元素的,這時候可以利用find_all方法達到這個效果。
例子:html原始碼段為:
1
text1
text2
text3
text4
text5
text6
text6
text7
text8
text9
text10
text11
text12
text13
text14
假如我們已經獲取到了以上html原始碼中的元素,現在希望獲取到文字「text14」,可以利用以下**實現。
zctime = item.find_all('td')[15].get_text()
需要注意的是,使用find_all方法時,會得到元素下所有符合要求的元素,不僅包括元素的子元素,還包括子元素的子元素,以及子元素的子元素的子元素......(無線套娃~~),因此在以上html原始碼段中text14所在的位置是在bs4獲取的第15個元素中。 Python 網路爬蟲之BeautifulSoup
在上一節記錄了如何使用urllib進行網路爬蟲,並將資料儲存。但是我當時是使用的正規表示式進行的資料過濾,有些不全面。接下來我將記錄一種更加方便的解析資料的操作 beautifulsoup 安裝beautifulsoup4 導包import urllib.request from bs4 impor...
python 網路爬蟲之beautifulsoup
beautifulsoup 用來提取請求返回資訊 安裝 pip install beautifulsoup4 平行遍歷,發生在同乙個父節點下的各節點間 標籤的平行遍歷的結果不一定是標籤 import requests from bs4 import beautifulsoup import re u...
爬蟲筆記 關於json
因而在動態載入的網頁爬蟲時,我們只需要像瀏覽器那樣,通過特定的get鏈結,獲取到json,然後對json進行解析即可。在python中對json進行解析時可以利用json庫中的loads函式完成,關鍵語句如下 import json import requests url https 這裡是獲取js...