BeautifulSoup按编号指定表格列?

时间:2014-04-09 20:52:32

标签: python html python-2.7 html-parsing beautifulsoup

使用Python 2.7和BeautifulSoup 4,我正在从表格中抓取歌曲名称。

现在,脚本会在表的行中找到链接;如何指定我想要第一列?

理想情况下,我可以切换数字来改变选择的数字。

现在代码看起来像这样:

from bs4 import BeautifulSoup

import requests

r  = requests.get("http://evamsharma.finosus.com/beatles/index.html")

data = r.text

soup = BeautifulSoup(data)

for table in soup.find_all('table'):
    for row in soup.find_all('tr'):
        for link in soup.find_all('a'):
            print(link.contents)

如何对每个<td>代码中的<tr>代码进行索引?

现在的URL就是我网站上的一个页面,我基本上从维基百科中复制了表源,使得抓取更简单。

谢谢!

evamvid

1 个答案:

答案 0 :(得分:1)

查找td内的所有tr代码,然后按索引获取所需的代码:

index = 2
for table in soup.find_all('table'):
    for row in soup.find_all('tr'):
        try:
            td = row.find_all('td')[index]
        except IndexError:
            continue
        for link in td.find_all('a'):
            print(link.contents)