国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Ruby中的Mechanize的使用教程

2019-10-26 19:25:17
字體:
來源:轉載
供稿:網友

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("http://google.com").save_as

小技巧

puts Mechanize::AGENT_ALIASES 可以打印出所有可用的user_agent
puts Mechanize.instance_methods(false) 輸出Mechanize模塊的所有方法
puts Mechanize.instance_methods()   輸出Mechanize模塊的所有方法以及所繼承的類的函數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 菏泽市| 边坝县| 洞头县| 彭阳县| 宜兰市| 呼和浩特市| 泸水县| 浙江省| 永德县| 满洲里市| 分宜县| 广安市| 惠来县| 德清县| 宁国市| 平原县| 河南省| 辽宁省| 承德市| 龙南县| 三门峡市| 夏河县| 梓潼县| 澄江县| 江川县| 和平区| 永清县| 北流市| 射阳县| 那坡县| 仁布县| 石狮市| 万年县| 铜陵市| 稷山县| 南丹县| 巴林左旗| 鄯善县| 出国| 五河县| 稻城县|