我正在开发一个python脚本来从特定站点获取数据。 我使用Beautiful Soap作为python模块。 HTML页面中的有趣数据属于这种结构:
<tbody aria-live="polite" aria-relevant="all">
<tr style="">
<td>
<a href="www.server.com/art/crag">Name<a>
</td>
<td class="nowrap"></td>
<td class="hidden-xs"></td>
</tr>
</tbody>
到标签tbody中有更多的tr标签,我想把每个标签td的第一个标签a带到
我试过这样的方式:
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
a = soup.find(id='tabella_falist')
b = a.find("tbody")
link = [p.attrs['href'] for p in b.select("a")]
但是这样脚本会将所有href放入所有td标记中。怎么才能先拿?
由于
答案 0 :(得分:1)
如果我理解正确,你可以试试这个:
from bs4 import BeautifulSoup
import requests
url = 'your_url'
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
print(soup.a)
soup.a
将返回页面上的第一个a
标记。
答案 1 :(得分:0)
这应该做的工作
html = '''<html><body><tbody aria-live="polite" aria-relevant="all">
<tr style="">
<td>
<a href="www.server.com/art/crag">GOOD ONE<a>
<a href="www.server.com/art/crag">NOT GOOD ONE<a>
</td>
<td class="nowrap">
<a href="#">GOOD ONE</a>
</td>
<td class="hidden-xs"></td>
</tr>
</tbody></body></html>'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
for td in soup.select('td'):
a = td.find('a')
if a is not None:
print a.attrs['href']