如何只使用BeautifulSoup在维基百科页面上获取第一个表的数据?

时间:2016-11-21 06:09:47

标签: python web-scraping beautifulsoup wikipedia

我正在尝试从维基百科页面中删除数据。

网页网址:https://en.wikipedia.org/wiki/2015_in_hip_hop_music

这是我目前提出的代码。

代码:

from bs4 import BeautifulSoup
import urllib.request
def make_soup(url):
    thepage=urllib.request.urlopen(url)
    soupdata=BeautifulSoup(thepage, "html.parser")
    return soupdata

soup= make_soup("https://en.wikipedia.org/wiki/2015_in_hip_hop_music")
albumdatasaved=""
for record in soup.findAll('tr'):
    albumdata=""
    for data in record.findAll('td'):
        albumdata=albumdata+","+data.text
    albumdatasaved=albumdatasaved+"\n"+albumdata[1:]

print(albumdatasaved)

但是,我的代码提供了页面上所有4个表的数据。 有什么方法可以获得第一个的数据吗? (发行专辑)

任何帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

from bs4 import BeautifulSoup
import urllib.request
def make_soup(url):
    thepage=urllib.request.urlopen(url)
    soupdata=BeautifulSoup(thepage, "html.parser")
    return soupdata

soup= make_soup("https://en.wikipedia.org/wiki/2015_in_hip_hop_music")
albumdatasaved=""
# find all table ,get the first
table = soup.find_all('table', class_="wikitable")[0]  # Only use the first table
# iter over it
for record in table.findAll('tr'):
    albumdata=""
    for data in record.findAll('td'):
        albumdata=albumdata+","+data.text
    albumdatasaved=albumdatasaved+"\n"+albumdata[1:]

print(albumdatasaved)