ruby – 如何使用JavaScript添加动态内容来抓取网页?
发布时间:2020-12-17 03:16:41 所属栏目:百科 来源:网络整理
导读:我试图刮掉 this webpage,它有懒惰的负载,因为我们滚动它加载.使用Nokogiri我能够抓取初始页面,但不能滚动后加载的页面的其余部分. 解决方法 要获取延迟加载的页面,请删除以下页面: http://www.flipkart.com/mens-footwear/shoes/casual-shoes/pr?p%5B%5D=s
我试图刮掉
this webpage,它有懒惰的负载,因为我们滚动它加载.使用Nokogiri我能够抓取初始页面,但不能滚动后加载的页面的其余部分.
解决方法
要获取延迟加载的页面,请删除以下页面:
http://www.flipkart.com/mens-footwear/shoes/casual-shoes/pr?p%5B%5D=sort%3Dpopularity&sid=osp%2Ccil%2Cnit%2Ce1f&start=31&ajax=true http://www.flipkart.com/mens-footwear/shoes/casual-shoes/pr?p%5B%5D=sort%3Dpopularity&sid=osp%2Ccil%2Cnit%2Ce1f&start=46&ajax=true http://www.flipkart.com/mens-footwear/shoes/casual-shoes/pr?p%5B%5D=sort%3Dpopularity&sid=osp%2Ccil%2Cnit%2Ce1f&start=61&ajax=true ... require 'rubygems' require 'nokogiri' require 'mechanize' require 'open-uri' number = 1 while true url = "http://www.flipkart.com/mens-footwear/shoes" + "/casual-shoes/pr?p%5B%5D=sort%3Dpopularity&" + "sid=osp%2Ccil%2Cnit%2Ce1f&start=#{number}&ajax=true" doc = Nokogiri::HTML(open(url)) doc = Nokogiri::HTML(doc.at_css('#ajax').text) products = doc.css(".browse-product") break if products.size == 0 products.each do |item| title = item.at_css(".fk-display-block,.title").text.strip price = (item.at_css(".pu-final").text || '').strip link = item.at_xpath(".//a[@class='fk-display-block']/@href") image = item.at_xpath(".//div/a/img/@src") puts number puts "#{title} - #{price}" puts "http://www.flipkart.com#{link}" puts image puts "========================" number += 1 end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Flashback Database
- 来自Ruby的系统调用
- Oracle分页存储过程
- VB.NET MYSQL DataGridView 增删改查(INSERT,SELECT,UPDAT
- Swift调用Objective-C编写的代码(颜色选择器KKColorListPi
- 语句:<%@ Register Assembly="AjaxControlToolkit&
- swift基础语法之控件使用02
- Quick cocos2dx-Lua(V3.3R1)学习笔记(10)-----用自带的bu
- c# – 如何在Microsoft.Rest.ServiceClient中使用Windows身
- JsonCpp使用细谈(Windows平台)