1
でページのレンダリング方法のWebスクレイプmuliple JavaScriptにこれは、検索結果はJavaScriptによってレンダリングされているので、私はのRuby on Railsとワチール
https://www.cargurus.com/Cars/inventorylisting/viewDetailsFilterViewInventoryListing.action?sourceContext=carGurusHomePage_false_0&formSourceTag=104&entitySelectingHelper.selectedEntity=m2&zip=48126#resultsPage=1
の結果を取得しようとしていますページで、私が使用する必要がありますWebDriver Watir。私は最初の5ページの結果を得たいと思います。しかし、私は最初のページだけを取得でき、他のページは取得できません。他のページはどのように訪問するのですか?
$pageCount = 1
5.times do
page = $pageCount.to_s
browser = Watir::Browser.start("https://www.cargurus.com/Cars/inventorylisting/viewDetailsFilterViewInventoryListing.action?sourceContext=carGurusHomePage_false_0&formSourceTag=104&entitySelectingHelper.selectedEntity=m2&zip=48126#resultsPage=#{page}", browser = :phantomjs)
#browser.link(:class, "nextPageElement").wait_until_present
doc = Nokogiri::HTML.parse(browser.html)
entries = doc.css('.cg-dealFinder-result-wrap')
entries.each do |entry|
title = entry.css('.cg-dealFinder-result-model>span')[0].text.strip
link = entry.css('.cg-dealFinder-result-stats>p>span')[0].text.strip
newEntry = Entry.new(title: title, description:link)
if title.present? && link.present? && Entry.where(title: title, description: link).blank?
newEntry.save
end
end
$pageCount = $pageCount + 1
browser.close
end
Btw私は、JavaScriptでレンダリングされていないページの結果を持つ他のウェブサイトに対して、複数のスクレイプを正常に実行できます。
基本となるリクエストのjsonレスポンスを解析する方法はありますか?ページがロードされた直後にリクエスト 'ajaxFetchSubsetInventoryListing'を探します。投稿したURLは、対応するパラメータとともにAjax POSTリクエストを作成します。 –