[英]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.