ruby+nokogori抓取糗事百科前10页并存储进数据库示例
ruby,nokogori,爬取糗事百科最新的10页加图片比并同时保存进文本跟数据库
#encoding:utf-8
require "open-uri"
require "nokogiri"
require "mysql"
@dbh=Mysql.real_connect("localhost","root","dengli","pachong")
@file=open("qb.txt","w")
def getQiubai(url)
data=open(url){|f| f.read}
doc=Nokogiri::HTML(data)
doc.css('div.block.untagged.mb15.bs2').each{|p|
content=p.css('div.content').text
@file.puts("#{content}\n")
img=p.css('div.thumb img').each{|img|
imgAddr=img.attr('src')
@file.puts("#{imgAddr}\n")
time=Time.now
sql="INSERT INTO qiushibaike (`body`,`img`,`time`) VALUES ('#{content}','#{imgAddr}','#{time}')"
@dbh.query(sql)
}
}
end
for i in 1..10
@file.puts("这是第#{i}页")
url="http://www.qiushibaike.com/8hr/page/#{i}"
getQiubai(url)
end
相关推荐
-
Ruby中访问SQL Server数据库的配置实例
因为工作需要,要分析存放在SQL Server上的数据,所以不得不研究一下如何使用Ruby访问SQL Server,发现其实还是很简单的: 安装FreeTDS 下载FreeTDS源代码 解压编译安装: 复制代码 代码如下: ./configure --prefix=/usr/local/freetds && make && sudo make install 安装Tiny_TDS Tiny_TDS,安装和使用非常简单,推荐使用: 复制代码 代码如下: sudo gem in
-
浅谈Ruby on Rails下的rake与数据库数据迁移操作
不知道你有没有把数据迁移写入Migration文件的经历,相信无论是老鸟还是新手都这样干过吧.事实上,这样做并不是行不通,只不过这样的实践慢慢会给你引入一些不必要的麻烦. 一般认为db/migrate文件夹里的内容是关于你数据库Schema的演变过程,每个新的开发或线上环境都要通过这些Migration来构建可用的数据库.但如果这里装入了,负责细节的业务代码,比如一些历史遗留数据的迁移代码之类的,当一段时间后,数据库的结构变化了,但Migration没有跟着变化,渐渐的曾经的辅助代码,就成了垃圾
-
Ruby连接使用windows下sql server数据库代码实例
require 'win32ole' class SqlServer # This class manages database connection and queries attr_accessor :connection, :data, :fields def initialize @connection = nil @data = nil end def open # Open ADO connection to the SQL Server database connection_st
-
在Ruby程序中连接数据库的详细教程
本章节将向您讲解如何使用 Ruby 访问数据库.Ruby DBI 模块为 Ruby 脚本提供了类似于 Perl DBI 模块的独立于数据库的接口. DBI 即 Database independent interface,代表了 Ruby 独立于数据库的接口.DBI 在 Ruby 代码与底层数据库之间提供了一个抽象层,允许您简单地实现数据库切换.它定义了一系列方法.变量和规范,提供了一个独立于数据库的一致的数据库接口. DBI 可与下列进行交互: ADO (ActiveX Data Object
-
Ruby on Rails框架程序连接MongoDB的教程
前边有介绍mongodb的安装以及ror项目的搭建,现在进行一下整合. 1.创建项目 创建项目时不再使用rails active_record支持 rails new todo -O 2.我们将要使用MongoMapper来驱动MongoDB到Rails 编辑GemFile,增加下面的内容 gem"mongo_mapper" 然后 执行 bundle install 安装gem bundle install 3.添加数据库链接 在config/initializer下面新建一个mon
-
ruby+nokogori抓取糗事百科前10页并存储进数据库示例
ruby,nokogori,爬取糗事百科最新的10页加图片比并同时保存进文本跟数据库 复制代码 代码如下: #encoding:utf-8require "open-uri"require "nokogiri"require "mysql"@dbh=Mysql.real_connect("localhost","root","dengli","pachong")@fi
-
C#使用HtmlAgilityPack抓取糗事百科内容实例
本文实例讲述了C#使用HtmlAgilityPack抓取糗事百科内容的方法.分享给大家供大家参考.具体实现方法如下: Console.WriteLine("*****************糗事百科24小时热门*******************"); Console.WriteLine("请输入页码,输入0退出"); string page = Console.ReadLine(); while (page!="0") { HtmlWeb h
-
零基础写python爬虫之抓取糗事百科代码分享
项目内容: 用Python写的糗事百科的网络爬虫. 使用方法: 新建一个Bug.py文件,然后将代码复制到里面后,双击运行. 程序功能: 在命令提示行中浏览糗事百科. 原理解释: 首先,先浏览一下糗事百科的主页:http://www.qiushibaike.com/hot/page/1 可以看出来,链接中page/后面的数字就是对应的页码,记住这一点为以后的编写做准备. 然后,右击查看页面源码: 观察发现,每一个段子都用div标记,其中class必为content,title是发帖时间,我们只需
-
玩转python爬虫之爬取糗事百科段子
大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 本篇目标 抓取糗事百科热门段子 过滤带有图片的段子 实现每按一次回车显示一个段子的发布时间,发布人,段子内容,点赞数. 糗事百科是不需要登录的,所以也没必要用到Cookie,另外糗事百科有的段子是附图的,我们把图抓下来图片不便于显示,那么我们就尝试过滤掉有图
-
Python爬虫爬取糗事百科段子实例分享
大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 本篇目标 1.抓取糗事百科热门段子: 2.过滤带有图片的段子: 3.实现每按一次回车显示一个段子的发布时间,发布人,段子内容,点赞数. 糗事百科是不需要登录的,所以也没必要用到Cookie,另外糗事百科有的段子是附图的,我们把图抓下来图片不便于显示,那么我们
-
Python多线程爬虫实战_爬取糗事百科段子的实例
多线程爬虫:即程序中的某些程序段并行执行, 合理地设置多线程,可以让爬虫效率更高 糗事百科段子普通爬虫和多线程爬虫 分析该网址链接得出: https://www.qiushibaike.com/8hr/page/页码/ 多线程爬虫也就和JAVA的多线程差不多,直接上代码 ''' #此处代码为普通爬虫 import urllib.request import urllib.error import re headers = ("User-Agent","Mozilla/5.0
-
Python 制作糗事百科爬虫实例
早上起来闲来无事做,莫名其妙的就弹出了糗事百科的段子,转念一想既然你送上门来,那我就写个爬虫到你网站上爬一爬吧,一来当做练练手,二来也算找点乐子. 其实这两天也正在接触数据库的内容,可以将爬取下来的数据保存在数据库中,以待以后的利用.好了,废话不多说了,先来看看程序爬取的数据结果 值得一提的是,我在程序中想一下子爬取糗事百科 30 页的内容,但是出现了连接错误,当我把页数降到 20 页的时候,程序就可以正常的跑起来了,不知道是什么原因,渴望知道的大神可以告诉我一声,感激不尽. 程序非常简单,直接
-
NodeJS爬虫实例之糗事百科
1.前言分析 往常都是利用 Python/.NET 语言实现爬虫,然现在作为一名前端开发人员,自然需要熟练 NodeJS.下面利用 NodeJS 语言实现一个糗事百科的爬虫.另外,本文使用的部分代码是 es6 语法. 实现该爬虫所需要的依赖库如下. request: 利用 get 或者 post 等方法获取网页的源码. cheerio: 对网页源码进行解析,获取所需数据. 本文首先对爬虫所需依赖库及其使用进行介绍,然后利用这些依赖库,实现一个针对糗事百科的网络爬虫. 2. request 库 r
-
下载糗事百科的内容_python版
复制代码 代码如下: #coding:utf-8 import urllib.request import xml.dom.minidom import sqlite3 import threading import time class logger(object): def log(self,*msg): for i in msg: print(i) Log = logger() Log.log('测试下') class downloader(object): def __init__(se
-
Python爬虫实战演练之采集糗事百科段子数据
目录 知识点 爬虫基本步骤: 爬虫代码 导入所需模块 获取网页地址 发送请求 数据解析 保存数据 运行代码,得到数据 知识点 1.爬虫基本步骤 2.requests模块 3.parsel模块 4.xpath数据解析方法 5.分页功能 爬虫基本步骤: 1.获取网页地址 (糗事百科的段子的地址) 2.发送请求 3.数据解析 4.保存 本地 爬虫代码 导入所需模块 import re import requests import parsel 获取网页地址 url = 'https://www.qiu
随机推荐
- 字符编码笔记 ASCII,Unicode和UTF-8
- Python中处理字符串的相关的len()方法的使用简介
- Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
- 获取字符中中文首字字符
- Android ListView 和ScroolView 出现onmeasure空指针的解决办法
- mysql 获取当前日期函数及时间格式化参数详解
- Mysql经典的“8小时问题”
- jQuery选择器querySelector的使用指南
- jQuery-ui中自动完成实现方法
- mySQL中replace的用法
- Jquery提交表单 Form.js官方插件介绍
- jQuery获取checkbox选中的值
- JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
- JS中作用域和变量提升(hoisting)的深入理解
- Java8新特性之Base64详解_动力节点Java学院整理
- 深入解析Java中的Classloader的运行机制
- Bootstrap 模态框实例插件案例分析
- 《诚实与谦虚》令你的人际如鱼得水
- layer iframe 设置关闭按钮的方法
- tp5 实现列表数据根据状态排序