【发布时间】:2021-08-23 11:49:30
【问题描述】:
我有一个 ruby 中的数据抓取工具,用于检索文章数据。
我团队中的另一个开发人员需要我的爬虫来启动他可以向其发出请求的 webServer,以便他可以将数据导入到他构建的节点应用程序中。
作为一名大三学生,我不明白以下内容:
a) Rails 中是否有适当的约定告诉我将 scraper.rb 文件放在哪里
b) 正确放置该文件后,我将如何让服务器接受与 scrapedData 的连接
c)端口、套接字和路由之间的关系(功能上)是什么
我知道这可能是一个“菜鸟问题”,但老实说我不知道。
有人可以把它分解一下吗?
我已经:
i) 设置 server.rb 文件并将其链接到 localhost:2000 但我不确定如何创建正确的路由或连接,以允许某人使用 Postman 作为有效路由并连接到我的数据。
require 'socket'
require 'mechanize'
require 'awesome_print'
port = ENV.fetch("PORT",2000).to_i
server = TCPServer.new(port)
puts "Listening on port #{port}..."
puts "Current Time : #{Time.now}"
loop do
client = server.accept
client.puts "= Running Web Server ="
general_sites = [
"https://www.lovebscott.com/",
"https://bleacherreport.com/",
"https://balleralert.com/",
"https://peopleofcolorintech.com/",
"https://afrotech.com/",
"https://bossip.com/",
"https://www.itsonsitetv.com/",
"https://theshaderoom.com/",
"https://shadowandact.com/",
"https://hollywoodunlocked.com/",
"https://www.essence.com/",
"http://karencivil.com/",
"https://www.revolt.tv/"
]
holder=[]
agent = Mechanize.new
general_sites.each do |site|
page=agent.get(site);
newRet = page.search('a')
newRet.each do |e|
data = e.attr('href').to_s
if(data.length > 50)
holder.push(data)
end
end
pp holder.length.to_s + " [ posts total] ==> Now Scraping --> " + site
end
client.write(holder)
client.close
end
【问题讨论】:
标签: ruby-on-rails tcpclient rails-routing tcpsocket