爬蟲 Beautifulsoup 常用筆記

2022-07-29 08:48:11 字數 1780 閱讀 7085

soup.find返回的是乙個物件,第乙個符合條件的標籤 

soup.findall返回的是乙個列表,包含所有符合條件的標籤

所以find後面可以直接接get_text函式,而findall不行,只能將findall列表中的元素,單獨地去get_text

例如:

from urllib.request import

urlopen

from bs4 import

beautifulsoup

import

requests

html = urlopen("

")a_html = beautifulsoup(html,'

lxml')

mudi = a_html.find("div",)

.get_text()#find返回單個物件,可以直接接get_text()

print

(mudi)

target = "

"req =requests.get(target)

html2 =req.text

bf = beautifulsoup(html2,'

html.parser')

for mudi2 in a_html.find("

div",).findall("span",):

print

(mudi2.get_text()) # findall是乙個列表,需要單獨將元素get_text()

同時,注意urlopen和request方式是不同的

bsobj.findall("h1"

) # 返回頁面中標籤為的乙個列表

bsobj.findall() # 獲取全部標題標籤的列表

a = bsobj.findall("h2"

)

len(a)

#.findall 返回的是列表,所以可以用 len() 計算個數

bsobj.findall("", )  #

返回所有標籤屬性class為green的標籤,形成乙個列表

bsobj.findall(

"span

", ) #

返回所有的span標籤中,屬性class為綠色的

for child in jbsobj.find("

table

",).children#

在名為giftlist的列表標籤下,找到該列表標籤的子標籤

# 如果不是children而是descendants函式的話,就是該標籤下的全部後代標籤

#parent尋找父標籤

for sibling in bsobj.find("

table

",).tr.next_siblings: #

尋找該table標籤的兄弟標籤,不包括他本身,且從他開始往後

# 如果不是next_siblings, 而是previous_siblings,則是從後往前

爬蟲 BeautifulSoup 模組

二 根據這個dom樹就可以按照節點的名稱 屬性和文字搜尋節點 find all 方法會搜尋出所有滿足要求的節點,find 方法只會搜尋出第乙個滿足要求的節點 兩個方法的引數一模一樣 三 得到節點以後,就可以訪問它的名稱 屬性 文字。a為標籤名稱 超連結 href,class為屬性,顯示在頁面上的是p...

爬蟲beautifulsoup實踐

爬蟲beautifulsoup實踐 一 觀察response。首先,在chrome瀏覽器裡觀察一下該網頁的response內容,可以觀察到,的url都存放在img標籤下面,srcset屬性裡面,而且它們的class屬性都為 2zekz。二 理清爬蟲步驟的思路。規律已經找出來了 下一步就把爬蟲的思路寫...

爬蟲資料 Beautiful Soup

安裝 pip intsall bs4 beautiful soup的簡介 beautiful soup是python的乙個庫,最主要的功能是從網頁抓取資料,官方解釋如下 github位址 和lxml一樣,beautifulsoup也是乙個html xml的解析器,主要功能也是如何解析和提取html ...