首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从网页中抓取表数据

从网页中抓取表数据
EN

Stack Overflow用户
提问于 2020-03-29 12:38:49
回答 2查看 33关注 0票数 0

我正在努力学习蟒蛇和葡萄牙语,所以我以为我可以一石二鸟。

下面是一个页面的例子。我想下载蓝色表格中的数据,所以第一个这样的表叫做Presente,下一个表叫做Pretérito Perfeito等等。

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

有更好的方法吗?

代码语言:javascript
复制
 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')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-29 12:42:18

他们没有ids,但他们有类。你可以:

代码语言:javascript
复制
results.find_all("div", "blue-box-wrap")

其中blue-box-wrap是一个类。

它将返回一个长度为22的ResultSet对象,因为有22个蓝色表。您可以通过索引选择所需的索引,如下所示:

代码语言:javascript
复制
blue_tables = results.find_all("div", "blue-box-wrap")
blue_tables[0]
票数 1
EN

Stack Overflow用户

发布于 2020-03-29 12:44:44

取代:

代码语言:javascript
复制
 results = soup.find(id='ch_divSimple')
 mychk = results.prettify()
 tbl_elems = results.find_all('section', class_='wrap-verbs-listing')

With:

代码语言:javascript
复制
results = soup.find("div", attrs={"class": 'blue-box-wrap'})
tbl_elems = results.find_all('ul', class_='wrap-verbs-listing')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60914401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档