页面通过js加载怎么爬虫 ruby实现

Python012

页面通过js加载怎么爬虫 ruby实现,第1张

Ruby中爬虫的实现

Ruby中实现网页抓取,一般用的是mechanize,使用非常简单。 安装

sudo gem install mechanize

抓取网页

require 'rubygems'

require 'mechanize'

agent = Mechanize.new

page = agent.get('http://google.com/')

模拟点击事件

page = agent.page.link_with(:text =>'News').click

模拟表单提交

google_form = page.form('f')

google_form["q"] = 'ruby mechanize'

page = agent.submit(google_form, google_form.buttons.first)

pp page

分析页面,mechanize用的是nokogiri解析网页的,所以可以参照nokogiri的文档

table = page.search('a')

text = table.inner_text

puts text

有几点注意的地方: 如果需要先登录的网页,那么可以在网站先登录,登录后记录JSESSIONID,然后赋值给agent

cookie = Mechanize::Cookie.new("JSESSIONID", "BA58528B76124698AD033EE6DF12B986:-1")

cookie.domain = "datamirror.csdb.cn"

cookie.path = "/"

agent.cookie_jar.add!(cookie)

如果需要保存网页,使用.save_as,(或许save也可以,我没试过)例如

agent.get("google.com").save_as

学python不一定要学爬虫。python的应用范围很广泛,如软件开发、科学计算、自动化运维、云计算、web开发、网络爬虫、人工智能等。爬虫不仅仅可以用python写,很多语言都可以实现爬虫。例C,C++、C#、Perl、 Python、Java、 Ruby都可以写爬虫,原理其实相差不大,只不过是平台问题。网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。

传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件;爬虫主要的工作就是根据一定的规则去抓取网络上我们想要的数据的程序,这里大家要注意的是爬虫不一定非要使用Python才可以实现的,使用JavaScript、Java等语言都是可以实现的。千锋教育拥有多年Python培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。