我正在尝试从购物网站中抓取内容,然后将其保存在表格Product中的数据库中。刮擦这样的内容需要知道每个站点的DOM结构。不仅是DOM结构,还有菜单中类别的层次结构。
通过为每个站点设置配置,有许多解决方案可以实现这一点,然后使用regx,XPath或css选择器查找包含(产品名称,价格,型号等)的特定html元素。
是否有任何解决方案可以避免每个站点的设置配置并自动删除产品属性?
有一个类似的解决方案可以处理可读性等新闻,它会查找<p>
标签和图像的序列。由于新闻网站与简单结构之间的相似性,新闻更容易,
答案 0 :(得分:1)
如果您要抓取的网站没有针对其html结构的一般模式,则必须为每个网站配置脚本。
只有你很幸运,你不必重新配置脚本。
ps:通常网络抓取工具从头开始构建代码。
答案 1 :(得分:1)
没有灵丹妙药,但你可以做的是使用XSLT作为你的网站和你的抓取程序之间的主要“绑定”。 XSLT支持内置了Html Agility Pack。
至少它会最大限度地减少网站发展或改变其结构所需的工作量,而不是仅仅依赖纯粹的程序代码。更改XSLT(一旦习惯了)文本将不需要编译,更像是“配置”系统。但是,您仍然必须为每个目标网站定义至少一个XSLT文件(当然,除非这些网站建立在相同的软件上)。
您可以查看此链接以获取XSLT示例:Use HtmlAgilityPack to divy up a document