python - 试图在一个 div 中抓取一个 div 中的元素,无法弄清楚

标签 python web-scraping beautifulsoup

我正在尝试使用 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/

相关文章:

python - Sphinx - 如何调用命令? ( window )

python - 如何使用 beautifulsoup 从 HTML 中提取数据

python - 抓取时如何限制结果的数量

python - 如何使用 lxml.etree python 中的类名解析 html

python - 在 Python 中将时间从 AM/PM 格式转换为军事时间

python - 扩展字典数据框列表

python - 我使用 pyglets Sprite.delete() 错误吗?

Perl HTML 解析器

python web scrape 具有递增的 id

python - 使用 bs4 和 Python 从 html 表格中提取数据