Ruby on rails 如何在ruby中使用mechanize检测新的博客帖子

Ruby on rails 如何在ruby中使用mechanize检测新的博客帖子,ruby-on-rails,ruby,screen-scraping,mechanize,blogs,Ruby On Rails,Ruby,Screen Scraping,Mechanize,Blogs,当一篇新的博客文章被添加到博客中时,我正在尝试检测。我正在用机械化刮削。目前,如果您知道blog的父标签Blot Title here,您可以将您现在拥有的标题与上次检查的标题进行比较。但我想用程序来做这件事。有没有一种方法可以通过编程知道页面的哪个部分或标签包含博客文章的标题,而不显式地将标签继承给脚本 假设有一个博客名blog.example.com。邮局在那儿- <article><header><h1>Blot Title here1</h1&g

当一篇新的博客文章被添加到博客中时,我正在尝试检测。我正在用机械化刮削。目前,如果您知道blog的父标签
Blot Title here
,您可以将您现在拥有的标题与上次检查的标题进行比较。但我想用程序来做这件事。有没有一种方法可以通过编程知道页面的哪个部分或标签包含博客文章的标题,而不显式地将标签继承给脚本

假设有一个博客名blog.example.com。邮局在那儿-

<article><header><h1>Blot Title here1</h1></header></article>
<article><header><h1>Blot Title here2</h1></header></article>
<article><header><h1>Blot Title here3</h1></header></article>
您将了解哪种css负责每篇文章。你可以使用nokogiri或machanize gem来废弃这篇文章

假设macanize机器人将访问blog.example.com,它将收集所有文章并插入您的数据库

require 'nokogiri'
require 'open-uri'
if 1==1
url = "http://www.eslemployment.com/country/esl-jobs-Vietnam.html"
doc = Nokogiri::HTML(open(url))
data = []
doc.css("#joblist td:nth-child(1) a").first(5).each do |titlecss|
country = "8"
jobtype = "1"
urlnext = titlecss.attr('href')
docnext = Nokogiri::HTML(open(urlnext))
docnext.css('#jobdescription div').remove
docnext.css('#detailjob , #job-summary').each do |detailscss|
docnext.css('#pagemsg h1').each do |titlenextcss|
data << JobPost.create(
:title => titlenextcss.text,
:jobslink => urlnext,
:description => detailscss.inner_html,
:country_id => country,
:job_type_id => jobtype
)
end
end
end
end
需要“nokogiri”
需要“打开uri”
如果1==1
url=”http://www.eslemployment.com/country/esl-jobs-Vietnam.html"
doc=Nokogiri::HTML(打开(url))
数据=[]
css文件(“#工作清单td:n个孩子(1)a”)。第一(5)。每个都有标题|
country=“8”
jobtype=“1”
urlnext=titlecss.attr('href')
docnext=Nokogiri::HTML(打开(urlnext))
css(“#作业描述div”)。删除
css(“#detailjob,#job summary”)。每个do | detailscs|
css('#pagemsg h1')。每个都有| titlenextcss|
数据标题lenextcss.text,
:jobslink=>urlnext,
:description=>detailscss.inner\u html,
:country_id=>country,
:job\u type\u id=>jobtype
)
结束
结束
结束
结束
下面是nokogiri宝石的一个例子。它从www.esemployment.com收集作业。现在,您的问题是如何检测新添加的文章

这段代码从一个页面收集所有作业,并将其添加到数据库中。我在这里使用“distint”代码到模型中,因此只有新作业才会添加到数据库中。不会将复制作业添加到数据库中。添加新作业时,可以通知添加的作业

这不是有效的方法。但它会起作用。否则,您可以使用该博客的rss提要。这是检测新帖子的正确方法