debbbbie Writings

深藏功与名

Follow me onGitHub

让爬虫轻松一点~(一)

在信息大爆炸的互联网,数据多的烦不胜数,想要人为的统计某类信息,恐怕越来越难了,这时候就需要爬虫的帮助了,一如 360 爬取百度的百科、知道一淘爬取各大电商的产品、用户评论百姓网从赶集网页面上收集其用户公开的 QQ 邮箱并发送推广邮件。。。

随着爬虫的发展,已经严重危害了目标网站的服务质量及数据安全,于是他们开始各种围追堵截。道高一尺魔高一丈,我们的爬虫终究能够突破层层壁垒,拿到想要的数据。

今天,我们就做一件事,让爬虫更智能。一般的服务器都会判断访问来源的 User-Agent,适时的更好一下你的 User-Agent,无非是个明智之举。 Gem useragents,已经为您封装了此项需求,只需拿来即用就行。用法非常简单:

首先安装一下本 gem,gem install useragents

然后对代码:

require 'httparty'

HTTParty.get('http://ruby-china.org')

更改成这样即可

require 'useragents'

agent = UserAgents.rand()
# => "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1464.0 Safari/537.36"
HTTParty.get('http://ruby-china.org', :headers => {'User-Agent' => agent})

useragents 全部收集于流行浏览器 Chrome, Opera, Safari, InternetExplorer, Firexof,并剔除了其中的老旧版本,最终保留了 500 多个 User-Agent,并会定时更新。

附上 github 地址 https://github.com/debbbbie/useragents-rb, 欢迎 fork 或提交 issues