从Yahoo和Google抓取页面的外链数量

     做过SEO搜索引擎优化的朋友都知道要收集很多相关的数据,如页面的访问量、关键字为页面带来的访问量、页面在关键字下的排名、页面PR值等等,用来监控网站的这些数据的变化情况,为我们的优化工作提供依据。这里边很多的数据都需要从Web上抓取,Google 和Yahoo是数据的最重要来源。 下边这段小程序就是用来获取页面的外部链接数的,把我们需要抓取数据的URL存到一个文本文件中,一行一个。运行程序就生成一个文件,里边有对应的结果,前边是URL后边就是外链数。主要用到了open-uri库。

 

 

require 'open-uri'

def get_yahoo_inlink

  open('yahoourl.txt','w') do |file|
      open('url列表.txt').each do |line|
      line=line.strip()
        
       if line!=''
        search_url=line.gsub(/:/,'%3A').gsub(/\//,'%2F').gsub(/,/,'%2C')
        url="http://siteexplorer.search.yahoo.com/search?p=#{search_url}&bwm=i&bwmo=d" 
        page_content=Kernel.open(url).read()
        result=page_content.scan(/Inlinks \(.*\)/)
          
          if result.length==1
           linknumber=result[0].delete('Inlinks (').delete(')')
           file.puts "#{line}  : #{linknumber}"
        else 
           file.puts "#{line}  :0"
        end
      end
     end      
   end
end

def get_google_inlink
  
  open('googleurl.txt','w') do |file|
      open('url列表.txt').each do |line|
      line=line.strip()
      
      if line!=''
        search_url=line.gsub(/:/,'%3A').gsub(/\//,'%2F').gsub(/,/,'%2C')
        url="http://www.google.com/search?num=20&hl=en&q=link%3A#{search_url}&btnG=Search" 
        page_content=Kernel.open(url).read()
        result=page_content.scan(/of about.* linking to/)
        result2=page_content.scan(/of .* linking to/)
        
        if result.length==1
           linknumber=result[0].delete('of about').delete('linking to').delete('<b>').delete('</b>')
           file.puts "#{line}  : #{linknumber}"
        else 
           if result2.length==1
              linknumber=result2[0].delete('of').delete('linking to').delete('<b>').delete('</b>')
              file.puts "#{line}  : #{linknumber}"
           else 
             file.puts "#{line}  :0"
           end           
         end
       end
     end      
   end
end
 

 

 

 

 

 

 

 

你可能感兴趣的:(Web,工作,搜索引擎,Yahoo,Google)