为什么这个ruby代码返回一个空白页面,而不是用用户名填充?
我想在照片分享网站Fotolog中收集一个名为Nature的特定组中的用户姓名。这是我的代码:为什么这个ruby代码返回一个空白页面,而不是用用户名填充?,ruby,web-scraping,web-crawler,Ruby,Web Scraping,Web Crawler,我想在照片分享网站Fotolog中收集一个名为Nature的特定组中的用户姓名。这是我的代码: require 'rubygems' require 'mechanize' require 'csv' def getInitUser() agent1 = Mechanize.new number = 0 while number<=500 address = 'http://http://www.fotolog.com/nature/partic
require 'rubygems'
require 'mechanize'
require 'csv'
def getInitUser()
agent1 = Mechanize.new
number = 0
while number<=500
address = 'http://http://www.fotolog.com/nature/participants/#{number}/'
logfile2 = File.new("Fotolog/Users.csv","a")
tryConut = 0
begin
page = agent1.get(address)
rescue
tryConut=tryConut+1
if tryConut<5
retry
end
return
end
arrayUsers= []
# search for the users
page.search("a[class=img_border_radius").map do |opt|
link = opt.attributes['href'].text
link = link.gsub("http://www.fotolog.com/","").gsub("/","")
arrayUsers << link
logfile2.print("#{link}\n")
end
number = number+100
end
return arrayUsers
end
arrayUsers = getInitUser()
arrayUsers.each do |user|
getFriend(user)
end
需要“rubygems”
需要“机械化”
需要“csv”
def getInitUser()
agent1=Mechanize.new
数字=0
而数字选择器是错误的。如果您试图使用xpath,则必须使用如下内容:page.search(“.//a[@class='img\u border\u radius'])
。但是我会使用css选择器:page.search(“a.img\u border\u radius”)
或者你甚至可以使用page.links\u和(class:.img\u border\u radius”).map
。。。另外,我会用put
代替print
(我甚至不知道print
是写入文件的正确方式),将logfile2.print(“{link}\n”)
替换为logfile2.put(“{link}”)
另一件事是,在使用logfile.close
后必须关闭该文件。您的选择器是错误的。如果您试图使用xpath,则必须使用如下内容:page.search(“.//a[@class='img\u border\u radius'])
。但是我会使用css选择器:page.search(“a.img\u border\u radius”)
或者你甚至可以使用page.links\u和(class:.img\u border\u radius”).map
。。。另外,我会用put
而不是print
(我甚至不知道print
是写入文件的正确方式),将logfile2.print(“{link}\n”)
替换为logfile2.puts({link}”)
另一件事是在使用logfile.close
后必须关闭文件。