2016-08-23 64 views
0

我使用红宝石下载使用百头巨怪一个完整的网页,但它仅下载HTML,是否有可能使用typhoeus而不是仅在Ruby下载完整的网页?

request = Typhoeus::Request.new(
      "www.example.com", 
      method: :get, 
      headers: { Accept: "text/html" } 
    ) 

response.body只返回HTML,我可以添加任意格式下载其数据,该数据是完整的网页通过JavaScript加载?或者有没有其他的方式来获取数据?

+1

通常你'负责使用[Nokogiri](http://nokogiri.org)之类的东西解析HTML,然后在事实之后获取任何你想要的资源。值得注意的是,'wget'工具有一个'-m'选项,递归的蜘蛛和下载一切,如果你需要一个快速和肮脏的解决方案。 – tadman

+0

通过nokogiri,我用open,但它也得到了html,因为我试图解析的网页是通过javascript加载它的数据。 – dips

+1

JavaScript与这里的任何内容有什么关系? Nokogiri再一次是一个HTML解析器。这不是一个网站下载。如果你需要JavaScript来实现这个功能,你需要使用[无头浏览器](https://www.ruby-toolbox.com/categories/browser_testing),祝你好运。 – tadman

回答

0

这不能在一个请求中完成。您需要解析HTML找到所有需要的图像,并下载他们

取决于你用这个做什么,你可能需要做其他资产一样在页面上(如CSS)

+0

我需要从通过JavaScript加载的网页获取内容,如何解析以获取通过JavaScript加载的数据? – dips