使用 ruby 自动滚动页面处理,nokogiri
auto scroll page handling with ruby, nokogiri
在使用 xpath
和 nokogiri
抓取页面时,我遇到了一些自动滚动的问题
大多数自动滚动通常都有一些分页,这样我就可以通过输入来处理。
但是,如果喜欢这个页面,如果 autoscroll 作为 js 功能存在,我该如何尝试抓取?
通常在使用自动滚动时,js 函数向服务器执行 AJAX 请求以获取新项目。因此,您只需打开浏览器检查器并检查滚动页面时发出的 XHR 请求。
比如这个juswatch执行请求
https://apis.justwatch.com/content/titles/en_US/popular?body=%7B%22age_certifications%22:null,%22content_types%22:null,%22genres%22:null,%22languages%22:null,%22max_price%22:null,%22min_price%22:null,%22monetization_types%22:%5B%22flatrate%22,%22rent%22,%22buy%22,%22ads%22,%22free%22%5D,%22page%22:2,%22page_size%22:30,%22presentation_types%22:null,%22providers%22:null,%22release_year_from%22:null,%22release_year_until%22:null,%22scoring_filter_types%22:null%7D
因此,要解析整个站点,您根本不需要 nokogiri。只执行上面的请求,每次替换页面参数并解析返回json.
在使用 xpath
和 nokogiri
抓取页面时,我遇到了一些自动滚动的问题
大多数自动滚动通常都有一些分页,这样我就可以通过输入来处理。
但是,如果喜欢这个页面,如果 autoscroll 作为 js 功能存在,我该如何尝试抓取?
通常在使用自动滚动时,js 函数向服务器执行 AJAX 请求以获取新项目。因此,您只需打开浏览器检查器并检查滚动页面时发出的 XHR 请求。
比如这个juswatch执行请求
https://apis.justwatch.com/content/titles/en_US/popular?body=%7B%22age_certifications%22:null,%22content_types%22:null,%22genres%22:null,%22languages%22:null,%22max_price%22:null,%22min_price%22:null,%22monetization_types%22:%5B%22flatrate%22,%22rent%22,%22buy%22,%22ads%22,%22free%22%5D,%22page%22:2,%22page_size%22:30,%22presentation_types%22:null,%22providers%22:null,%22release_year_from%22:null,%22release_year_until%22:null,%22scoring_filter_types%22:null%7D
因此,要解析整个站点,您根本不需要 nokogiri。只执行上面的请求,每次替换页面参数并解析返回json.