国产探花免费观看_亚洲丰满少妇自慰呻吟_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模塊的所有方法以及所繼承的類的函數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤山市| 河源市| 中阳县| 黄平县| 汉川市| 金阳县| 大城县| 聂荣县| 缙云县| 固安县| 上高县| 松原市| 梁平县| 广宁县| 柳江县| 西贡区| 津南区| 万源市| 巨野县| 龙海市| 乌审旗| 于都县| 长治县| 满洲里市| 峨山| 寿宁县| 衡阳县| 安乡县| 淅川县| 峨眉山市| 苍南县| 子洲县| 翼城县| 邯郸市| 乐都县| 宣城市| 务川| 卓资县| 苍溪县| 诏安县| 海丰县|