Tag: 网刮

Nokogiri Scraping错过了HTML

Nokogiri并没有抓住iframe标签下的任何东西。 doc.search(“iframe”)仅返回iframe标记。 doc.search(“body.content-frame”)返回空。 doc.errors也返回空。 Nokogiri为什么不在iframe下注册HTML? 我该怎么抓住它? #document #ETC…….

Ruby Watir Gem,定时输入表格

我正在使用Watir,Mechanize和Nokigirigem练习网页拼图。 我的Watir脚本遇到了问题。 我的计划是通过http://tripadvisor.com/获取航class价格清单。 当我运行脚本时,Chrome浏览器会按原样打开,脚本会继续填写表单的第一部分,原点和目标,然后停止。 这是我收到的错误消息: This code has slept for the duration of the default timeout waiting for an Element to be present. If the test is still passing, consider using Element#exists? instead of rescuing UnknownObjectException /home/jaffejoe/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/watir-6.2.0/lib/watir/elements/element.rb:515:in `rescue in wait_for_present’: element located, but timed out after 30 seconds, waiting for true condition on #”rt_leaveday”, :tag_name=>”input”}> […]

数据抓取多个数组创建和排序

我们正在努力削减课程名称,资格和课程持续时间,并将每个课程存储在一个单独的arrays中。 下面我们拉出所有这些,但它似乎是随机顺序,有些部分可能按页面排序等。想知道是否有人能够提供帮助。 require ‘mechanize’ mechanize = Mechanize.new @duration_array = [] @qual_array = [] @courses_array = [] page = mechanize.get(‘http://search.ucas.com/search/results?Vac=2&AvailableIn=2016&IsFeatherProcessed=True&page=1&providerids=41’) page.search(‘div.courseinfoduration’).each do |x| puts x.text.strip page.search(‘div.courseinfooutcome’).each do |y| puts y.text.strip end while next_page_link = page.at(‘.pager a[text()=”>”]’) page = mechanize.get(next_page_link[‘href’]) page.search(‘div.courseinfoduration’).each do |x| name = x @duration_array.push(name) puts x.text.strip end end while next_page_link = page.at(‘.pager a[text()=”>”]’) page […]

数据抓取多个页面点击循环

试图找出一种方法,使用一个机制来刮取并向arrays添加我们想要的所有UCAS网站数据。 目前,我们正在努力使用机械化链接点击进行编码。 想知道是否有人可以提供帮助,在循环中有三个连续的链接点击进入所有搜索结果页面。 显示所有大学课程的第一个链接是div class morecourseslink 显示课程名称,持续时间和资格的第二个链接是div类coursenamearea 第三个链接在div coursedetailsshowable中,一个id是coursedetailtab_entryreqs 目前我们正在用下面的方式抓取uninames: class PagesController “]’) page = mechanize.get(next_page_link[‘href’]) page.search(‘li.result h3’).each do |h3| name = h3.text @uninames_array.push(name) end end puts @uninames_array.to_s end end 课程名称的持续时间和资格来自以下内容: require ‘mechanize’ mechanize = Mechanize.new @duration_array = [] @qual_array = [] @courses_array = [] page = mechanize.get(‘http://search.ucas.com/search/results?Vac=2&AvailableIn=2016&IsFeatherProcessed=True&page=1&providerids=41’) page.search(‘div.courseinfoduration’).each do |x| puts x.text.strip page.search(‘div.courseinfooutcome’).each do […]

如何使用nokogiri和mechanize从标签中提取文本?

这是预订网站源代码的一部分: booking.ensureNamespaceExists(‘env’); booking.env.b_map_center_latitude = 53.36480155016638; booking.env.b_map_center_longitude = -2.2752803564071655; booking.env.b_hotel_id = ‘35523’; booking.env.b_query_params_no_ext = ‘?label=gen173nr-17CAEoggJCAlhYSDNiBW5vcmVmaFCIAQGYAS64AQTIAQTYAQHoAQH4AQs;sid=e1c9e4c7a000518d8a3725b9bb6e5306;dcid=1′; 我想提取booking.env.b_hotel_id 。 这样我就可以获得’25523’的价值。 我如何通过nokogiri和机械化实现这一目标? 希望有人可以帮忙! 谢谢! 🙂

如何刮取延迟加载的页面

这是我用于解析网页的代码。我在rails console中做了。但是我没有在我的rails控制台中获得任何输出。我想要抓取的网站是延迟加载 require ‘nokogiri’ require ‘open-uri’ page = 1 while true url = “http://www.justdial.com/functions”+”/ajxsearch.php?national_search=0&act=pagination&city=Delhi+%2F+NCR&search=Pandits”+”&where=Delhi+Cantt&catid=1195&psearch=&prid=&page=#{page}” doc = Nokogiri::HTML(open(url)) doc = Nokogiri::HTML(doc.at_css(‘#ajax’).text) d = doc.css(“.rslwrp”) d.each do |t| puts t.css(“.jrcw”).text puts t.css(“span.jcn”).text puts t.css(“.jaid”).text puts t.css(“.estd”).text page+=1 end end

未定义的方法’click’为nil:NilClass(Mechanize)

我正在使用Mechanize构建一个脚本来从网站上抓取数据。 该脚本应该点击“阅读传记”链接,然后在下一页抓取该成员的传记。 这是Rake文件中的脚本: require ‘mechanize’ require ‘date’ require ‘json’ task :testing2 do agent = Mechanize.new page = agent.get(“https://www.congress.gov/members”) page_links = page.links_with(href: %r{.*/member/\w+}) member_links = page_links[0…2] members = member_links.map do |link| member = link.click name = member.search(‘title’).text.split(‘|’)[0] institution = member.search(‘td~ td+ td’).text.split(‘:’)[0] dob = member.search(‘.birthdate’).text.strip[1..4] # Get bio bio_link = member.link_with(:text => ‘Read biography’).click bio = […]

如何在Ruby中编写Web scraper?

我想抓取一个没有API的流行网站(比如Quora)并获取一些特定信息并将其转储到文件中 – 比如csv,.txt或.html很好地格式化:) 例如,仅返回Quora用户的所有“Bios”列表,这些用户在其公开信息中列出了职业“用户体验设计师”。 我如何在Ruby中做到这一点? 我对Ruby&Rails的工作方式有足够的了解。 我刚刚完成了一个Rails应用程序 – 主要是我自己编写的。 但是,无论想象力如何,我都不是大师。 我了解RegExs等