爬蟲筆記 關於Beautiful Soup 4

2022-09-09 23:09:30 字數 993 閱讀 2602

再使用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...