Python 快速定位网页中的元素

Python 快速定位网页中的元素,python,web-scraping,Python,Web Scraping,我正在开发一个Python代码,从这个网页上抓取所有菜名的列表:。我有HTML工作原理的基本知识,以及如何通过类名查找元素,并且我成功地抓取了一些更简单的网页。只是这个网站有很多菜名,每个菜名都可以点击,所以返回的HTML文件非常复杂。在用户选择早餐/午餐/晚餐/深夜后,是否有人能提供一种更简单的方法来获取所有菜名的列表?非常感谢~如果您将其标记为python,我假设您希望使用python而不是任何其他语言选项 我发现使用正则表达式解析机器生成的HTML最简单。因为它是由模板生成的,所以您可以计

我正在开发一个Python代码,从这个网页上抓取所有菜名的列表:。我有HTML工作原理的基本知识,以及如何通过类名查找元素,并且我成功地抓取了一些更简单的网页。只是这个网站有很多菜名,每个菜名都可以点击,所以返回的HTML文件非常复杂。在用户选择早餐/午餐/晚餐/深夜后,是否有人能提供一种更简单的方法来获取所有菜名的列表?非常感谢~

如果您将其标记为python,我假设您希望使用python而不是任何其他语言选项

我发现使用正则表达式解析机器生成的HTML最简单。因为它是由模板生成的,所以您可以计算出模板是什么,并将值作为命名组提取出来。正则表达式是处理文本的强大工具

使用正则表达式也不需要HTML格式良好,我也看到了一些。如果页面有错误,SGML/HTML解析器将不太可能工作

您可以阅读python手册中的正则表达式


如果您还没有发现它,那么requests库非常适合抓取页面:

这是否也适用于正在更改的元素?我的意思不是元素的内容,而是元素的数量。我本来不能刮,因为盘子每天都在换,而且盘子的数量也会不一样。是的。计算出一个条目的模式(可能很长!),然后使用re.findall()获得每个匹配项的列表。您将得到一个元组列表,每个元组中每个组有一个条目。或者,如果有一个字符串分隔每个项目并与每个项目匹配,则可以使用string.split()。