Ruby用百度搜索爬虫

Posted 潇雨危栏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby用百度搜索爬虫相关的知识,希望对你有一定的参考价值。

Ruby用百度搜索爬虫

博主ruby学得断断续续,打算写一个有点用的小程序娱乐一下,打算用ruby通过百度通道爬取网络信息。

第三方库准备

  • mechanize:比较方便地处理网络请求,类似于Python中的requests
  • nokogiri:解析html文本,采用的是jquery选择器

步骤分析

  • 用mechanize创建一个agent对象
  • 我们首先登录百度主页
  • 找到百度『搜索』框的表单
  • 填写表单内容
  • 提交表单(agent用该表单的内容发出submit动作)
  • 分析百度获得的搜索结果列表
  • 用nokogiri解析HTML文本,提取出我们感兴趣的内容

代码

require \'mechanize\'
require \'nokogiri\'

# 百度搜索的关键字,可修改
keyword = \'ruby\'

# 创建一个agent对象
agent = Mechanize.new
# 发送get请求获取页面
page = agent.get \'http://www.baidu.com/\'
# 根据名字属性定位表单
search_form = page.form_with :name => \'f\'
# 填表,搜索框的name是wd
search_form.field_with(:name => "wd").value = keyword
# 提交表单
search_results = agent.submit search_form
doc = Nokogiri::HTML(search_results.body)
doc.css(\'.c-container > h3 > a\').each{
  |item|
  puts item.text
}

测试结果

以上是关于Ruby用百度搜索爬虫的主要内容,如果未能解决你的问题,请参考以下文章

Golang模拟搜索引擎爬虫

python爬取百度搜索页面,得到内容不全,求教,why

爬虫日记之关键字搜索引擎爬取

百度搜索引擎关键字URL采集爬虫优化行业定投方案高效获得行业流量-代码篇

如何用Python爬虫实现百度图片自动下载?

Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)