Ruby on rails Nokugiri网络刮擦问题
看起来我第一次问得不太好。再来一次 我在这里尝试遵循本教程: 我目前还试图从以下网站链接中获取价格: 我想要实现的是拥有所有这三种门票(名称和价格,希望尽可能多地了解门票/价格),并在我的web应用程序中使用它们 我不能给你看结果,它的尺寸太大了,但是我可以告诉你,我没有击中第二个byebug,这是我的代码Ruby on rails Nokugiri网络刮擦问题,ruby-on-rails,ruby-on-rails-4,web-scraping,Ruby On Rails,Ruby On Rails 4,Web Scraping,看起来我第一次问得不太好。再来一次 我在这里尝试遵循本教程: 我目前还试图从以下网站链接中获取价格: 我想要实现的是拥有所有这三种门票(名称和价格,希望尽可能多地了解门票/价格),并在我的web应用程序中使用它们 我不能给你看结果,它的尺寸太大了,但是我可以告诉你,我没有击中第二个byebug,这是我的代码 url = "http://www.ticketmaster.co.uk/derren-brown-miracle-glasgow-04-07-2016/event/3700507891
url = "http://www.ticketmaster.co.uk/derren-brown-miracle-glasgow-04-07-2016/event/370050789149169E?artistid=1408737&majorcatid=10002&minorcatid=53&tpab=-1"
doc = Nokogiri::HTML(open(url))
byebug
doc.css(".item").each do |item|
title = item.at_css(".fru").text
byebug
end
不幸的是,为了帮助您,您最好自己尝试一下,以查看可怕的页面大小!哈哈
编辑,好吧。我的屏幕是27英寸,文字填满了屏幕
这是我从第一张图片中得到的图片
除此之外,我相信这张照片就是我所需要的?只是把它弄出来
谢谢
Sam这里的主要问题是价格是用javascript编写的,而不是用html-itslef编写的。Nokogiri只解析XML和HTML,因此您需要awesome REGEX的帮助。在您阅读完整的代码之前,这里有一些技巧可以帮助您理解它 首先,我使用以下代码搜索名为
的所有标记:
doc.xpath(//script[@type='text/javascript']/text()”)。每个
它返回100多个对象,所以我需要找到其中哪一个可以找到名称和价格。因此,我发现我需要阅读的特定javascript中有一些独特的文本,所以我遍历了所有>100个对象,并测试它是否包含那个独特的字符串。以下是供您理解的图像:
当我找到这些和平,我只是用正则表达式提取价格和名称。这是工作代码。只需复制粘贴并运行它
require 'rubygems'
require 'nokogiri'
require 'open-uri'
def get_name_and_price
ticketmaster_url = "http://www.ticketmaster.co.uk/derren-brown-miracle-glasgow-04-07-2016/event/370050789149169E?artistid=1408737&majorcatid=10002&minorcatid=53&tpab=-1"
doc = Nokogiri::HTML(open( ticketmaster_url ))
event_name = nil
ticket_price = nil
doc.xpath("//script[@type='text/javascript']/text()").each do |text|
if text.content =~ /TM\.Tracking\.satellite/
event_name = text.content[/"eventName":".*?"/].gsub!('"eventName":', '').gsub!('"', '')
elsif text.content =~ /more_options_on_polling/
ticket_price = text.content[/"total_price":"\d+\.\d+"/].gsub!('"total_price":', '').gsub!('"', '').to_f
end
end
puts "Event name: " + event_name
puts "Ticket price: " + ticket_price.to_s
end
get_name_and_price
图像也可能是一个很好的来源。哈没有想到图像!一秒钟嘿,我给你的问题添加了答案。这足够让你开始了。如果有帮助,请告诉我。快乐编码!谢谢,这会有很大的帮助,但是它只退还门票,这是最高限额,本次活动有3张门票可用。理想情况下,我可以使用车票名称/类型和价格来显示基本价格和费用。这就是编码之美我给了你起跑点。您可以使用regex自己搜索所有这些价格。在浏览器中,打开包含价格的页面,单击鼠标右键并选择“查看页面源”,然后搜索(CTRL+F)门票价格。试着理解其他程序员是如何将其编码到html页面的。知识需要时间。Happy codding.view page source,这是我无法解决的问题>。在处理这个问题时,是否需要处理它有点慢,有什么方法可以加快它吗?好的,我一直在处理它,我已经设法缩小了它的范围,但我还是以