Beautiful Soup解析工具簡介

2021-08-20 17:52:43 字數 2819 閱讀 1393

1.html解析器有很多種,比如:

解析工具

解析速度 

難度       

beautifulsoup

最慢最簡單

lxml快簡單

正則最快

最難2.beautiful soup解析工具的官方文件鏈結。

2.1獲取所有"a"標籤、2.2獲取第2個"a"標籤、2.3獲取class='ulink'的"a"標籤、2.4獲取滿足多個條件的"a"標籤、2.5獲取所有"a"標籤的href屬性、2.6獲取純文字text資訊。示例**如下:

# coding:utf-8

import requests

from lxml import etree

from bs4 import beautifulsoup

import chardet

base_domain = ""

headers =

def get_detailed_urls(url):

# 1.獲取網頁資訊

response = requests.get(url, headers=headers)

# 檢視網頁後發現,編碼方式為「gb2312」charset

encode_style = chardet.detect(response.content)["encoding"]

# text = response.content.decode(encode_style, "ignore")

text = response.content.decode("gbk", "ignore")

# 2.對獲取的text進行解析,解析成元素

soup = beautifulsoup(text, "lxml")

# 2.1獲取所有"a"標籤

# all_a = soup.find_all("a")

# for i in all_a:

# print i

# # tag型別

# # print type(i)

# # from bs4.element import tag

# 2.2獲取第2個"a"標籤

# all_a = soup.find_all("a", limit=2)[1]

# print all_a

# 2.3獲取class='ulink'的"a"標籤

# # 方法一

# # all_a = soup.find_all("a", class_="ulink")

# # 方法二

# all_a = soup.find_all("a", attrs=)

# for i in all_a:

# print i

# 2.4獲取滿足多個條件的"a"標籤

# 方法一

# all_a = soup.find_all("a", class_="ulink", href="/html/gndy/dyzz/20180605/56940.html")

# 方法二

# all_a = soup.find_all("a", attrs=)

# for i in all_a:

# print i

# 2.5獲取所有"a"標籤的href屬性

# all_a = soup.find_all("a")

# # for a in all_a:

# # # 方法一:通過下標的方式

# # # href = a["href"]

# # # print href

# # # 方法二:通過attrs屬性的方式

# # href = a.attrs["href"]

# # print href

# 2.6獲取純文字text資訊

all_a = soup.find_all("td", attrs=)[1:]

for a in all_a:

# 方法一:a.string

# print a.string

# print "="*30

# 方法二:a.strings

# infos = a.strings

# for info in infos:

# print info

# print "=" * 30

# 方法二:a.strings

# infos = list(a.strings)

# print infos

# 方法三:a.stripped_strings

# infos = a.stripped_strings

# for info in infos:

# print info

# print "=" * 30

# 方法四:a.get_text()

# infos = a.get_text()

# print infos

def spider():

# 1.獲取第二頁詳細url

# url = "/html/gndy/dyzz/index.html"

base_url = "/html/gndy/dyzz/list_23_{}.html"

for i in range(1, 8):

url = base_url.format(i)

get_detailed_urls(url)

break

if __name__ == '__main__':

spider()

BeautifulSoup解析資料

4 基本操作 coding utf 8 author wengwenyu from bs4 import beautifulsoup fp open soup text.html encoding utf 8 soup beautifulsoup fp,lxml print soup 根據標籤名進行...

資料解析 BeautifulSoup

bs4資料解析 例項化乙個beautifulsoup物件,並且將頁面遠嗎載入到該物件中。通過呼叫beautifulsoup物件中相關屬性方法進行標籤定位,資料提取。pip install bs4 pip install lxml 解析器 下面介紹乙個是從本地html文件中載入beautifulsou...

BeautifulSoup解析xml檔案的使用初步

借助拉手網的開放api藉口,獲取特定城市的當日 資料 列印響應 獲取每個店鋪的短標題和購買數量 print each.data.display.shorttitle.text,each.data.display.bought.text if name main fetch 沒有和etree.elem...