【发布时间】:2020-05-03 11:27:55
【问题描述】:
我需要抓取一个网站并检测页面上有多少广告。我已经使用 PHPCrawl 进行了爬网并将内容保存到数据库。如何检测网页是否有首屏广告?
【问题讨论】:
-
你所说的“折叠”到底是什么意思?这不是一个技术术语 AFAIK。它是某种 SEO 术语吗?它与您可能尝试解析的 HTML 文档有何关联。附:值得注意的是,许多广告可能会在主页加载后通过脚本和/或 AJAX 加载,因此仅使用 cURL 之类的方式请求页面可能无法让您检测到它们。您可能需要更复杂的系统,例如通常为 GUI 测试而设计的无头浏览器或软件,因此它可以更像普通浏览器(带有 JS 环境等)。
-
首屏,因为它适用于网页设计,是网页第一次加载时在浏览器窗口中可见的网页部分。需要滚动才能看到内容的页面部分称为“首屏下方”。
-
好的。好吧,您不可能从网络抓取中知道这一点。这部分对于每个用户来说都会有所不同,具体取决于屏幕大小等。HTML 文档本身不会告诉您这些信息,它完全与每个用户及其浏览器会话相关。即使您使用了我上面提到的更复杂的方法,使用定义视口并可以知道什么可见和不可见的工具,您收集的任何数据仍将特定于该会话和该视口大小。因此,您必须使用几个“常见”视口大小重复测试才能获得有用的信息
-
(另外补充一点,即使您假设每个人的屏幕/视口大小相同,仅抓取的 HTML 文档仍然无法告诉您您在追求什么,因为您必须结合使用 CSS 并在您知道之前渲染它,而且由于现代网页通常使用脚本加载其他内容,这可能会影响布局,因此您几乎肯定不会看到完整的内容或最终布局。)
-
你是对的。是不是意味着这个任务无法完成?
标签: php web-scraping web-crawler seo ads