Waitr :: Browser并未显示要Nokogiri抓取的动态网站内容

问题描述 投票:0回答:1

我创建了一个刮板,可以在各种职业网站上找到工作。在大约80%的网站上都可以使用,但是我很难在其余页面上使用它。

我认为原因是某些页面的页面上有JavaScript,这些JavaScript会生成动态内容。因此刮板失效。所以我尝试了watir以及机械化(都是宝石)。但是它仍然不起作用。这是一个示例网址:https://www.climeworks.com/careers/

任何人都可以抓取吗?

Here is my watir scraper:
 def watirscraper
    require 'nokogiri'
    require 'watir'

    puts "starting newscraper"
    opts = {
        headless: true
      }

    # if (chrome_bin = ENV.fetch('GOOGLE_CHROME_SHIM', nil))
    #   opts.merge!( options: {binary: chrome_bin})
    # end

    browser = Watir::Browser.new :chrome, opts

    browser.goto self.career_url
    company = self
    job_url = self.career_url

    html_doc = Nokogiri::HTML.parse(browser.html)
    jobtitle = html_doc.css(":contains('Developer'):not(:has(:contains('Developer')))").map(&:text)
    puts jobtitle

    end
ruby-on-rails ruby web-scraping nokogiri watir
1个回答
1
投票

Nokogiri只是一个不起眼的HTML解析器。它不运行JavaScript。

为此,您需要某种无头浏览器,例如Selenium,以及其他选项。

© www.soinside.com 2019 - 2024. All rights reserved.