我正在尝试使用 python 从网站上抓取餐馆的名称。我很难弄清楚要定位哪个确切的 div 类,然后如何编写代码来进行抓取。我已经成功地为其他网页编写了代码,但无法弄清楚这个。
我的目标是这个网页:https://www.broadsheet.com.au/melbourne/fitzroy
这是我尝试过的:
soup_rest_list = BeautifulSoup(html_rest, 'html.parser')
type(soup_rest_list)
rest_container = soup_rest_list.find_all(class_="venue-teaser-list format-horizontal VenueTeaserListWrapper-sc-13dcca9-1 fIcGQi", "h2", class_="venue-title")
虽然我没有得到太多的爱。现在,当我执行我的代码时,我只得到一个 []
非常感谢任何帮助。
最佳答案
首先,如果你真的尝试过你尝试过的东西,即
rest_container = soup_rest_list.find_all(class_="venue-teaser-list format-horizontal VenueTeaserListWrapper-sc-13dcca9-1 fIcGQi", "h2", class_="venue-title")
Python 会报告语法错误而不是将 []
分配给 rest_container
,因为 1) "h2"
是一个位置参数出现在 class_
之后,然后 2) class_
被第二次指定为关键字参数。
您可能正在寻找的是 CSS selector功能,它允许您通过指定等效的 CSS 选择器规则来选择一组元素中的元素:
>>> soup_rest_list.select("div.venue-teaser-list.format-horizontal.VenueTeaserListWrapper-sc-13dcca9-1.fIcGQi h2.venue-title")
[<h2 class="venue-title">...]
关于python - 试图在一个 div 中抓取一个 div 中的元素,无法弄清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62736652/