簡體   English   中英

beautifulsoup 對象如何能夠將標簽作為屬性?

[英]How beautifulsoup objects able to have a tag as an attribute?

為了提取一個標簽,你需要使用這個標簽作為一個屬性到Tag / BeautifulSoup object,例如要提取<head>標簽,我需要做這個soupobject.head

我仍然是編程和 python 的初學者,但根據我的理解和快速的谷歌搜索,object 屬性是屬於該對象的變量。 我的意思是我可以編寫一個腳本,它有一個名為p的變量,並且有一個條件,當我的腳本運行時,如果它找到一個<p>標記,它將從中解析任何相關數據,然后將其分配給p變量 I做了,但要編寫一個腳本,它本身將“定義”一個變量並根據我不知道如何的 html 標記名稱命名它。

我希望我解釋得足夠多。 我試圖理解 beautifulsoup 源代碼,但老實說,我仍然無法理解其中的大部分內容。

我唯一的假設/理論是通過創建 python 代碼的字符串格式然后導入它,我不知道這是否可能

一般來說,使用可變變量名並不是一個好習慣。 有些語言甚至無法做到這一點。 為了達到同樣的目的,您可以使用字典 object,它可以具有可變鍵名和可變值。

my_dict = {'key_1': 'value 1'}
print(my_dict['key_1'])
# out: 'value 1'

my_dict['some_key'] = 'another value'
# now your dictionary looks like this: 
# {'key_1': 'value 1', 'some_key': 'another value'}
print(my_dict['some_key'])
# out: 'another value'

# as for dynamic names:
some_name = 'key_3'
my_dict[some_name] = 'value 3'
print(my_dict)
# out: {'key_1': 'value 1', 'some_key': 'another value', 'key_3': 'value 3'}

通過特殊方法查看數據 model class 自定義,特別是通過__getattr__()__getattribute__()魔術方法自定義屬性訪問

在這種特殊情況下( bs4 ),您可以查看Tag class 的 bs4 源代碼,其中定義了Tag.__getattr__()魔術方法 注意BeautifulSoup class 繼承自Tag

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM