簡體   English   中英

Python和BeautifulSoup:湯類問題。find_all

[英]Python & BeautifulSoup : Issues with soup.find_all

h1 = soup.find('a', {'class': 'lien-jv topic-title'})['title']
print (h1)

我沒有問題,可以使用soup.find函數獲取title標簽中的值。 但是我正在解析的頁面上有多個類似的標簽,因此我必須使用soup.find_all函數,但它不起作用。

有了這個代碼

    h1 = soup.find_all('a', {'class': 'lien-jv topic-title'})['title']
    print (h1)

我有這個錯誤

Traceback (most recent call last):
  File "<tmp 1>", line 8, in <module>
    h1 = soup.find_all('a', {'class': 'lien-jv topic-title'})['title']
TypeError: list indices must be integers, not str

感謝幫助。

這應該工作:

results = [a['title'] for a in soup.find_all('a', {'class': 'lien-jv topic-title'})]

您應該記住, find_all函數返回soup對象的列表,您可以通過該對象過濾類,在您的情況下為class

接下來要做的是:

h1 = soup.find_all('a', {'class': 'lien-jv topic-title'})['title'] soup.find_all('a', {'class': 'lien-jv topic-title'})是列表,您正在嘗試訪問['title'] ,這是錯誤的。

因此從以下位置獲得title的最佳方法:

titles = map(lambda soup_object: soup_object['title'], soup.find_all('a', {'class': 'lien-jv topic-title'}))

暫無
暫無

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

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