从网页中抓取表格数据

时间:2020-03-29 12:38:49

标签: python python-3.x beautifulsoup

我正在尝试学习python和葡萄牙语,以为我可以用一块石头杀死两只鸟。

以下是pages之一的示例。我要下载蓝色表中的数据,因此第一个这样的表称为Presente,第二个表称为PretéritoPerfeito,依此类推。

下面是我的代码,但是我很挣扎。我的result变量确实包含了我需要的数据,但是由于div标签没有id,试图提取确切的位超出了我的范围。

有更好的方法吗?

 import requests
 from bs4 import BeautifulSoup

 URL = 'https://conjugator.reverso.net/conjugation-portuguese-verb-ser.html'
 page = requests.get(URL)
 soup = BeautifulSoup(page.content, 'html.parser')
 results = soup.find(id='ch_divSimple')
 mychk = results.prettify()
 tbl_elems = results.find_all('section', class_='wrap-verbs-listing')

2 个答案:

答案 0 :(得分:1)

他们没有ID,但是有类。您可以这样做:

results.find_all("div", "blue-box-wrap")

blue-box-wrap是课程。

它将返回一个长度为22的ResultSet对象,因为有22个蓝色表。您可以选择要建立索引的索引,例如第一个索引:

blue_tables = results.find_all("div", "blue-box-wrap")
blue_tables[0]

答案 1 :(得分:1)

替换:

 results = soup.find(id='ch_divSimple')
 mychk = results.prettify()
 tbl_elems = results.find_all('section', class_='wrap-verbs-listing')

使用方式:

results = soup.find("div", attrs={"class": 'blue-box-wrap'})
tbl_elems = results.find_all('ul', class_='wrap-verbs-listing')