gpt4 book ai didi

ruby-on-rails - Mechanize 访问链接并获取页面标题

转载 作者:行者123 更新时间:2023-12-04 16:18:57 24 4
gpt4 key购买 nike

我正在使用 Mechanize 来抓取一些数据。不幸的是,我似乎无法访问链接并获取访问页面的页面标题。

这是我的任务:

task :estimateone => :environment do
require 'mechanize'

mechanize = Mechanize.new
page = mechanize.get('https://www.city.com/city/list/50-city-cafes-you-should-have-eaten-breakfast-at')
page.css('ol li a').each do |link|
mechanize.click(link).each do |property|
puts property.title
end
end
end

最佳答案

单击链接后,您不需要该块,您已经在一个块中,迭代您在“主”URL 中找到的每个 anchor 。

如果您单击任何链接,它会返回它指向的页面( anchor 的 href)。你可以看到这个检查你的 Mechanize 变量之后的内容:

page.css(<selector>).each do |link|
mechanize.click(link)
mechanize

=> #<Mechanize
...
#<Mechanize::Page
{url #<URI::HTTPS https://www.theurbanlist.com/brisbane/directory/scout-cafe>}
{meta_refresh}
{title "Scout Cafe, Petrie Terrace | Brisbane | The Urban List"}
{iframes

你在这。 Mechanize 现在为您处理属于当前页面的数据。所以现在你可以通过 Mechanize 使用它的 page方法,访问其标题和所有其他内容:
page.css('div[itemprop="articleBody"] ol li a').each do |link|
mechanize.click(link)
puts "Title: #{mechanize.page.title}"
end

Title: Scout Cafe, Petrie Terrace | Brisbane | The Urban List
Title: Southside Tea Room | Brisbane | The Urban List
Title: Spring Hill Deli Cafe, Spring Hill | Brisbane | The Urban List

注意 itemprop 属性的使用并不是真正需要的,但我建议您添加更具体的 CSS 规则/选择器,以使元素易于识别。

关于ruby-on-rails - Mechanize 访问链接并获取页面标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51604782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com