【发布时间】:2020-01-27 22:03:48
【问题描述】:
我一直在尝试创建一个函数,当给出从 Chrome 开发工具复制的 css 选择器路径时返回 beautifulsoup 对象。
当我从 Chrome 复制一个元素的 css 选择器路径时,它是这样的:
body > table > tbody > tr:nth-child(2) > td.ColumnText2
如果我想让它成为一个合法的 beautifulsoup 对象,我会手动解析它
html = urlopen("https://someurl.com")
bs = BeautifulSoup(html, 'html.parser')
bs.body.find_all('table')[3].find_all('tbody')[0].find_all('tr')[2].find_all('td', {'class': 'ColumnText2'})
但这真的很笨拙,如果我必须手动完成,那么创建一个函数是没有意义的。是否有某种内置解析器可以立即将此 css 选择器路径转换为 beautifulsoup 对象?
【问题讨论】:
-
也许看看
soup.select允许通过css搜索的方法? -
@politicalscientist 哇,它马上就奏效了。我什至不需要做任何事情。也许我应该更彻底地搜索。这解决了我的问题谢谢。如果您回答问题而不是评论,我会确保选择答案。
-
太棒了!
.select对我来说是一个改变游戏规则的人:)
标签: python html beautifulsoup css-selectors