dew*_*ydb 6 php xpath screen-scraping
我熟悉在php中使用XPATH来解析DOM以从页面获取我想要的内容.我想听到的是关于我如何以编程方式忽略页面上的页眉,页脚和侧边栏的一些建议,并且只提取主体内容.
给出的情况是没有特定的目标,所以我不能简单地忽略像#header和#footer这样的特定id,因为每个页面的写法都略有不同.
我知道谷歌这样做,我知道它一定是可能的,我只是不知道从哪里开始.
谢谢!
没有小的或快速的方法可以从网页中抓取内容。我已经做了很多这样的事情。这没有简单的规则。在基于 html3/table 的设计时代的早期,有不同的识别方式,并且网站设计本身受到限制。屏幕尺寸有限,因此菜单通常位于顶部,没有空间容纳右侧或左侧面板。然后是带有桌子设计的面板的时代。现在是浮动内容的时候了。然后我们甚至使用溢出:隐藏,因此更难以通过字数统计等来了解正文。
编写 html 文件时,代码永远不会被标记为内容或菜单。有时您可以从类名中派生出它,但这并不通用。内容从 CSS 获取其大小和位置。所以你的解析器永远无法单独确定页面的主体部分。如果您使用嵌入式 html 查看器并使用 DHTML/JS 来定位渲染后块的大小,可能有某种方法可以做到这一点,但它仍然永远不会通用。我的建议是制作你的解析器并根据具体情况进行改进。
对于google来说,它已经为大多数html设计组合制作了程序。但即使对于谷歌来说,制作一个通用解析器,我认为也是不可能的。