是否可以在Firebug或Chrome DevTools的HTML面板中显示页面的HTML?
我必须抓取很多网站,但有时信息不在静态源代码中,即在加载页面后运行JavaScript并动态创建一些新的HTML内容。如果我然后提取源代码,那么这些内容就不存在了。
我有一个用Java构建的网络爬虫来做这件事,但它使用了很多旧的库。因此,我想转向Rails / Ruby解决方案用于学习目的,我已经使用Nokogir i和Mechanize进行了一些演示。
答案 0 :(得分:1)
如果抓取工具能够执行JavaScript,您只需使用document.firstElementChild.outerHTML
获取动态创建的HTML结构。
虽然Nokogiri和Mechanize目前不能够解析JavaScript。看到 Ruby Nokogiri Javascript Parsing和How do I use Mechanize to process JavaScript?就此而言。
因此,您需要其他工具,例如WATIR或Selenium。那些驱动真正的Web浏览器,因此可以处理任何JavaScript。
答案 1 :(得分:0)
您无法获取来自数据库端的记录。您只能获取静态的HTML代码。
Javascript必须通过查询请求从数据库请求记录,而爬行程序无法获取该记录。