有很多网页只是运行一个脚本而没有任何材料。 有没有看到页面源而没有实际访问页面,因为它只是重定向你?
使用html解析器会这样做吗?我正在使用simpleHTMLdom来解析页面?
答案 0 :(得分:4)
在firefox中,您可以使用view-source协议仅查看站点的源代码,而无需实际呈现它或在其上执行JavaScripts。
示例:view-source:http://stackoverflow.com/q/5781021/298479(将其复制到您的地址栏)
答案 1 :(得分:1)
是的,简单解析HTML将获得客户端(Javascript)代码。
当通过浏览器访问这些页面时,浏览器会运行代码并重定向它,但是当您使用刮刀或自己的程序访问它时,代码不会运行并且可以获得静态脚本。
当然你无法访问服务器端(php)。那是不可能的。
答案 2 :(得分:1)
如果你需要一个快速的&脏修复,您可以禁用JavaScript和Meta重定向(Internet Explorer可以在“Internet选项”对话框中禁用这些。Firefox可以使用NoScript加载项获得相同的效果。)
这不会对任何服务器端重定向,但会阻止客户端重定向,并允许您查看文档的HTML源。
答案 3 :(得分:0)
获取页面HTML源的唯一方法是向Web服务器发送HTTP请求并接收等于访问该页面的答案。
答案 4 :(得分:0)
如果您使用的是基于* nix的操作系统,请尝试使用终端中的curl。
答案 5 :(得分:0)
wget http://myurl lynx -dump http://myurl
答案 6 :(得分:0)
如果您正在尝试HTML-Scrape通过执行JavaScript构建其内容/视图的90%以上的页面内容,除非您渲染到屏幕(隐藏)然后抓取它,否则您将遇到问题。否则你最终会刮掉一些你没什么用的脚本标签。
e.g。如果我试图抓取我的Gmail收件箱页面,它是一个空的HTML页面,只有几个零散的脚本标签(可能是几乎所有基于GWT的应用程序的典型标签)
您正在抓取的网页/网站是否有API?如果没有,是否值得问他们是否有一个在工作中?
通常,这些类型的工具在“窃取”信息和“共享”信息之间沿着细线运行,因此您可能需要轻易踩踏。