Python 第4组查找ahref
但这并没有给我回报Python 第4组查找ahref,python,beautifulsoup,Python,Beautifulsoup,但这并没有给我回报href 预期结果: for link in soup.findAll('td',{'valign':'top'}): ahref = link.findAll('a',{'class':'list'}) print(ahref) 如何使用class=“list”找到href?比BS4做得更好(更快)呢 href="/default.asp?pagetemp=standard&pageload=emne&emneid=10298
href
预期结果:
for link in soup.findAll('td',{'valign':'top'}):
ahref = link.findAll('a',{'class':'list'})
print(ahref)
如何使用class=“list”
找到href?比BS4做得更好(更快)呢
href="/default.asp?pagetemp=standard&pageload=emne&emneid=102981&listview=1&forhandlerid=21"
如果您仍然坚持使用BS4:
/default.asp?pagetemp=standard&pageload=emne&emneid=102981&listview=1&forhandlerid=21
问题源于您对
findAll
对象的误解href
是BeautifulSoup对象的属性,可以像字典一样访问:
Found the URL: /default.asp?pagetemp=standard&pageload=emne&emneid=102981&listview=1&forhandlerid=21
你需要给我们更多的细节;我无法重现您的HTML示例片段的任何问题(前提是我先在其周围环绕
和
元素)。或者您正在询问如何仅从标记href
属性中提取值?如果是这样,至少要更新你的问题,以包括预期的结果。例如,我通过soup.select('td[valign=top]a[href]')[0]['href']
“更好”实际上取决于输入。据我所知,lxml只理解格式良好的html,而Beautiful Soup更宽容。@AndréLaszlo你是对的,BS
更宽容,但在大多数情况下lxml
不会给你带来任何麻烦,而且lxml
提供了一个soupparser
,如果您想像解析BS
那样解析html。
/default.asp?pagetemp=standard&pageload=emne&emneid=102981&listview=1&forhandlerid=21
from bs4 import BeautifulSoup
html = '<td valign="top"><a href="/default.asp?pagetemp=standard&pageload=emne&emneid=102981&listview=1&forhandlerid=21" class="list">Mercedes</a></td>'
soup = BeautifulSoup(html)
for a in soup.find_all('a', href=True):
print "Found the URL:", a['href']
Found the URL: /default.asp?pagetemp=standard&pageload=emne&emneid=102981&listview=1&forhandlerid=21
import bs4
raw = '''<td valign="top"><a href="/default.asp?pagetemp=standard&pageload=emne&emneid=102981&listview=1&forhandlerid=21" class="list">Mercedes</a></td>'''
soup = bs4.BeautifulSoup(raw)
for td in soup.findAll('td',{'valign':'top'}):
for link in td.findAll('a', {"class":"list"}):
print (link["href"])
/default.asp?pagetemp=standard&pageload=emne&emneid=102981&listview=1&forhandlerid=21