xpath - 针对特定内容的网页抓取

标签 xpath html-parsing web-scraping html-agility-pack

我正在尝试从购物网站抓取内容,然后将其保存在数据库表“产品”中。抓取此类内容需要了解每个站点的 DOM 结构。不仅是 DOM 结构,还有菜单中类别的层次结构。

有许多解决方案可以通过为每个站点设置配置来实现此目的,然后使用 regx、XPath 或 css 选择器查找包含(例如产品名称、价格、型号等)的特定 html 元素。

是否有任何解决方案可以避免为每个站点进行设置配置并自动抓取产品属性?

有一个类似的解决方案可以处理像 Readability 这样的新闻,它会查找 <p> 的序列。标签和图像。由于新闻站点相似且结构简单,新闻更容易,

最佳答案

没有什么 Elixir ,但是您可以使用 XSLT 作为您的网站和抓取程序之间的主要“绑定(bind)”。 XSLT 支持是通过 Html Agility Pack 内置的。

至少它将最大限度地减少网站发展或更改其结构时所需的工作量,而不是仅依赖于纯粹的过程代码。更改 XSLT(一旦您习惯了)文本将不需要编译,并且更相当于“配置”系统。但是,您仍然必须为每个目标网站至少定义一个 XSLT 文件(当然,除非这些网站是基于同一软件构建的)。

您可以查看此链接以获取 XSLT 示例:Use HtmlAgilityPack to divy up a document

关于xpath - 针对特定内容的网页抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18554304/

相关文章:

sql-server - 提取XML数据并加载到数据库中(可能的方法)

r - 通过带有嵌入式传单 svg 等的 RSelenium 提取底层数据

XSLT - 过滤

xml - Robotframework:如何在选择字段中接收所有项目的列表?

javascript - 使用 jQuery 从 HTML 创建 JSON 对象

css - 如何为 LESS CSS 应用 IE 修复

python - 如何使用 BeautifulSoup 选择一些 url?

python - 我在从 scrapy 蜘蛛下载/抓取图像时遇到值错误,我正在使用图像管道

java - 如何使用 Selenium 和 Java 从动态下拉列表中选择自动建议

C++如何从这个字符串中获取值