http://hi.baidu.com/whhzthfnayhntwe/item/a4f9ae056f08b012cc34eadc
Ruby Web Spidering and Data extraction
Anemone:
http://anemone.rubyforge.org
Example:
Anemone.crawl("http://www.example.com/") do |anemone|
anemone.on_every_page do |page|
puts page.url
end
end
Anemone提供了5个动词
after_crawl - 在crawl完了之后在所有抓取到的页面上运行一个block
focus_crawl - 用一个block去选择每个页面跟随哪些链接
on_every_page - 对每个页面运行block
on_pages_like - 给定一个模式,URL匹配的页面才运行block
skip_links_like - 跳过URL模式匹配的页面
每个page对象包含下面属性
url - page的URL
aliases - 重定位到这个page的URI,或这个page重定位到的页面
headers - HTTP响应头部信息
code - HTTP响应码
doc - 页面的Nokogiri::HTML::Document
links - 页面上的指向同样域名的所有URL数组
---------------------------------------------------------------------------
Mechanize:
http://mechanize.rubyforge.org
examples:
require 'rubygems'
require 'mechanize'
#创建实例
agent = Mechanize.new
#加载网页
page = agent.get("http://www.inruby.com")
#使用Mechanize::Page方法
page.title
page.content_type
page.encoding
page.images
page.links
page.forms
page.frames
page.iframes
page.labels
signup_page = page.link_with(:href =>/signup/).click
#使用Mechanize::Form
u_form = signup_page.form_with(:action =>/users/)
u_form['user[login]'] = 'maiaimi'
u_form['user[password]'] = 'maiami'
u_form['user[password_confirmation]'] = 'maiami'
u_form.submit
---------------------------------------------------------------------------------------------
#example2
This is an example of how to access a login protected site with WWW ::Mechanize. In this example, the login form has two fields named user and password. In other words, the HTML contains the following code:
1 <input name="user" .../>
2 <input name="password" .../>
Note that this example also shows how to enable WWW ::Mechanize logging and how to capture the HTML response:
1 require 'rubygems'
2 require 'logger'
3 require 'mechanize'
4
5 agent = WWW::Mechanize.new{|a| a.log = Logger.new(STDERR) }
agent = Mechanize.new({|a| a.log = Logger.new(STDERR)}
6 #agent.set_proxy('a-proxy', '8080')
7 page = agent.get 'http://bobthebuilder.com'
8
9 form = page.forms.first
10 form.user = 'bob'
11 form.password = 'password'
12
13 page = agent.submit form
14
15 output = File.open("output.html", "w") { |file| file << page.body }
Use the search method to scrape the page content. In this example I extract all text contained by span elements, which in turn are contained by a table element having a class attribute equal to ‘list-of-links’:
1 puts page.search("//table[@class='list-of-links']//span/text()") # do |row|
Mechanize Tips
1. agent alias
irb(main):071:0> Mechanize::AGENT_ALIASES.keys
=> ["Mechanize", "Linux Firefox", "Mac Mozilla", "Linux Mozilla", "Windows IE 6", "iPhone", "Linux Konqueror", "Windows IE 7", "Mac FireFox", "Mac Safari", "Windows Mozilla"]
2. reassign Mechanize's html parser
Mechanize.html_parser = Hpricot
agent = Mechanize.new
agent.user_agent_alias = 'Windows IE 7'
分享到:
相关推荐
python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python安装包,网络爬虫工具 python...
网络爬虫工具是实现这一目标的重要手段,它们能够帮助用户高效、快速地从网站上抓取所需的数据,而无需手动操作。GooSeeker网络爬虫就是一款这样的工具,它为用户提供免费的数据爬取服务。 GooSeeker网络爬虫是一款...
标题中的“用于网络爬虫工具”表明这是一款用于网络数据抓取的软件,通常这类工具可以帮助用户自动浏览网页,提取所需信息,包括文本和图片。爬虫在IT领域扮演着重要角色,尤其在数据分析、市场研究、搜索引擎优化...
**C#编写的网络爬虫工具** 网络爬虫是一种自动抓取互联网信息的程序,它按照一定的规则在网页之间穿梭,收集所需的数据。C#作为.NET框架下的编程语言,提供了丰富的库和工具来构建高效、稳定的网络爬虫。本项目中的...
网络爬虫工具如何爬取网站数据 网络爬虫工具如何爬取网站数据是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫工具是一种专门的爬虫工具,爬虫工作原理是:选择一些比较重要的、出度(网页中链...
"20款最常使用的网络爬虫工具推荐" 一、八爪鱼·云采集网络爬虫软件 八爪鱼是一款免费且功能强大的网站爬虫,用于从网站上提取你需要的几乎所有类型的数据。你可以使用八爪鱼来采集市面上几乎所有的网站。八爪鱼...
"网络爬虫工具推荐" 网络爬虫是一种自动化工具,用于从网站上提取特定或更新的数据并存储下来。随着网络爬虫的普及,人们可以轻松访问网站数据资源,并免于反复打字或复制粘贴。以下是20款最常使用的网络爬虫工具的...
**Python-scrape:一个命令行网络爬虫工具** 在当今数据驱动的世界中,网络爬虫是获取大量在线信息的关键工具。Python-scrape 是一个专为开发者设计的命令行网络爬虫工具,它允许用户轻松地从网站抓取数据,而无需...
网络爬虫工具如何爬取网站数据.pdf
第3讲-网络爬虫工具库(基础和工具)-I.html
无论您是需要快速抓取特定网站的数据,还是希望构建复杂的网络爬虫来处理大量数据,这里都有适合您的工具。 为何选择我们的Python爬虫工具 实用性: 这些工具都是根据实际需求开发的,具有高度的实用性和针对性,...
无论您是需要快速抓取特定网站的数据,还是希望构建复杂的网络爬虫来处理大量数据,这里都有适合您的工具。 为何选择我们的Python爬虫工具 实用性: 这些工具都是根据实际需求开发的,具有高度的实用性和针对性,...
用来抓取网站上,我们需要的文本信息。使用该工具,需要会简单的正则表达式和Xpath。
可以看到各个时间段的每一个参数的值。是网络开发的利器。可以看到各个时间段的每一个参数的值。是网络开发的利器。可以看到各个时间段的每一个参数的值。是网络开发的利器。
public static void main(String[] args) throws Exception { List tiaoj = new ArrayList(); tiaoj.add("\""); ... for(int i =0;i();i++){ filedown.imgdown(list.get(i).toString(), "H://2013-4-25//");...
网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫(Incremental Web Crawler)、深层网络爬虫...