我正在尝试使用自定义函数从div
父节点选择所有table
元素
到目前为止,我得到的是:
import BeautifulSoup
import requests
import lxml
url = 'https://www.salario.com.br/profissao/abacaxicultor-cbo-612510'
def getTables(url):
url = requests.get(url)
soup=BeautifulSoup(url.text, 'lxml')
div_component = soup.find('div', attrs={'class':'td-post-content'})
tables = div_component.find_all('table', attrs={'class':'listas'})
return tables
但是,当作为getTables(url)
应用时,输出是一个空列表[]
我希望这个函数返回div
节点中给定特定属性的所有html表格元素
如何调整此功能
有没有其他图书馆可以用来完成这项任务
采纳其他评论者的观点,并加以扩展
您的
div_component
返回1个元素,不包含表,但使用find_all()
yeilds 8个元素:因此,您不能只在列表上使用
find()
,您需要遍历它以找到包含表的div
另一种方法是,你可以使用
其中tables是一个包含6个元素的列表。如果您知道需要哪个表,可以遍历这些表,直到找到所需的表
第一个问题是“查找”只找到第一个这样的匹配项。第一篇td帖子内容<;部门>;不包含任何表。我想你想要“芬德尔”。其次,您可以将CSS选择器与BeautifulSoup一起使用。因此,您可以在不使用attributes参数的情况下搜索
soup.findall('div.td-post-content')
相关问题 更多 >
编程相关推荐