其实很早我就开始关注爬虫技术,这两天特别学习了一下,并且做了一个简单的demo。爬取了看看豆网站的数据信息。总共11751本书,爬取了不到3个小时,基本每秒爬取1条。速度慢的原因主要是单线程,使用mysql数据库。想要提高速度的话可以使用多线程和redis。但是对于初学者来说只要能爬取下来就很不错了。在这里我使用了一个爬虫框架---phpspider。

爬取完成后,我把数据从数据库中导成.csv格式。由于我的数据比较少,所以我是直接excle中做的分析。按道理来说应该使用JS的ECharts做数据分析的。但是我的Node.JS还没有学习过。所以先简单的进行测试。另,我已经把自己的demo上传到了github。https://github.com/XiaoTommy/phpspider

附:

看看豆官网:https://kankandou.com/

ECharts官网:http://echarts.baidu.com/

Node.js官网:https://nodejs.org/en/

demo源代码如下:

<?php
ini_set("memory_limit", "1024M");
require dirname(__FILE__).'/../core/init.php';/* Do NOT delete this comment */
/* 不要删除这段注释 */$configs = array('name' => '看豆豆',
//    'log_show' => false,'tasknum' => 1,//'save_running_state' => true,'domains' => array('kankandou.com','www.kankandou.com'),'scan_urls' => array('https://kankandou.com/'),'list_url_regexes' => array("https://kankandou.com/book/page/\d+"),'content_url_regexes' => array("https://kankandou.com/book/view/\d+.html",),'max_try' => 5,//'export' => array(//'type' => 'csv',//'file' => PATH_DATA.'/qiushibaike.csv',//),//'export' => array(//'type'  => 'sql',//'file'  => PATH_DATA.'/qiushibaike.sql',//'table' => 'content',//),'export' => array('type' => 'db','table' => 'kankandou',),'fields' => array(array('name' => "book_name",'selector' => "//h1[contains(@class,'title')]/text()",'required' => true,),array('name' => "book_content",'selector' => "//div[contains(@class,'content')]/text()",'required' => true,),array('name' => "book_author",'selector' => "//p[contains(@class,'author')]/a",'required' => true,),array('name' => "book_img",'selector' => "//div[contains(@class,'img')]/a/img",'required' => true,),array('name' => "book_format",'selector' => "//p[contains(@class,'ext')]",'required' => true,),array('name' => "book_class",'selector' => "//p[contains(@class,'cate')]/a",'required' => true,),array('name' => "click_num",'selector' => "//i[contains(@class,'dc')]",'required' => true,),array('name' => "download_num",'selector' => "//i[contains(@class,'vc')]",'required' => true,),),
);$spider = new phpspider($configs);$spider->on_handle_img = function($fieldname, $img)
{$regex = '/src="(https?:\/\/.*?)"/i';preg_match($regex, $img, $rs);if (!$rs){return $img;}$url = $rs[1];$img = $url;//$pathinfo = pathinfo($url);//$fileext = $pathinfo['extension'];//if (strtolower($fileext) == 'jpeg')//{//$fileext = 'jpg';//}以纳秒为单位生成随机数//$filename = uniqid().".".$fileext;在data目录下生成图片//$filepath = PATH_ROOT."/images/{$filename}";用系统自带的下载器wget下载//exec("wget -q {$url} -O {$filepath}");替换成真是图片url//$img = str_replace($url, $filename, $img);return $img;
};$spider->start();

分析数据:我只是简单的统计了一下,重点不是在这里。其中点击次数和下载次数有点小错误,暂时还在排查错误中。

其中有任何不对的地方,望请指正。

利用爬虫爬取看看豆网站站的数据信息相关推荐

  1. python爬虫爬取腾讯网站——实时疫情数据并生成Excel表格

    一.基本介绍: 开发背景:自从2020年新冠疫情发生后,至今为止的相关疫情数据新闻已经是非常的巨大了,我们无时不在在用数据尝试帮助我们解剖全球的疫情状况.由此可见,新冠疫情数据的新闻报道数量与国内疫情 ...

  2. 利用python爬取实习僧网站上的数据

    最近在找实习,就顺便想到用python爬取一些职位信息看看,有哪些岗位比较缺人. #_*_coding:utf-8_*_import requests from bs4 import Beautifu ...

  3. 利用Python爬取全国250m精度的人口数据(GeoQ)、房价数据和公交站(线路)等数据

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 中原百科 GIS大师兄 PS:如有需要Python学习资料的小伙伴可 ...

  4. Java爬虫 爬取某招聘网站招聘信息

    Java爬虫 爬取某招聘网站招聘信息 一.系统介绍 二.功能展示 1.需求爬取的网站内容 2.实现流程 2.1数据采集 2.2页面解析 2.3数据存储 三.获取源码 一.系统介绍 系统主要功能:本项目 ...

  5. 爬虫爬取快代理网站动态IP

    爬虫爬取快代理网站动态IP import requests, time from lxml import etree import time import randomcookie = "& ...

  6. python爬虫可以爬取哪些有用的东西_有哪些网站用爬虫爬取能得到很有价值的数据?...

    有哪些网站用爬虫爬取能得到很有价值的数据? 题主是个web程序员,最近想转去做数据分析,先练习的爬虫(python),各种爬取技巧以及多网站爬取等已经掌握,但发现转方向最无奈的是方向(要抓什么数据来干 ...

  7. 详细实例:用python爬虫爬取幽默笑话网站!(建议收藏)

    前言: 今天为大家带来的内容是详细实例:用python爬虫爬取幽默笑话网站!(建议收藏),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下! 爬取网站为 ...

  8. 利用爬虫爬取wallhaven壁纸

    利用爬虫爬取wallhaven壁纸 '''解析网页''' headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Apple ...

  9. 利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息

    新增:国外疫情网站介绍 已更新:爬取国外疫情数据 已更新:新型肺炎历史数据下载 2020年3月27日补充: 制作了一个全球肺炎数据查询下载网站,效果如下: 访问地址:http://119.3.227. ...

最新文章

  1. 再造人类生命的神奇细胞Human.Life.Our.Amazing.Cell
  2. CentOS单用户模式登录方法:
  3. 安装 pcre-8.1.0 出现错误
  4. html的标签和标记有啥区别,HTML 元素 b 和 strong 有什么区别?//(强调标签的理解)...
  5. 14 Scroll 滚动搜索
  6. puppeteer执行js_使用Node.js和Puppeteer与表单和网页进行交互– 1
  7. 非常实用的安卓第三方库
  8. Windows 8 Directx 开发学习笔记(十一)地形纹理贴图
  9. leetcode:String to Integer (atoi)
  10. c语言第三章知识点讲解,C语言考试最新知识点总结讲解.doc
  11. DOS常用命令(从入门到精通)
  12. [zigbee][z-Stack]协议栈简介及工作流程
  13. 28岁少帅统领旷视南京研究院,LAMDA魏秀参专访
  14. GTP协议中的APN,TEID,NSAPI,TID
  15. 无法退休的董小姐?董明珠继任格力董事长
  16. 局部敏感哈希-Locality Sensitivity Hashing
  17. Java之~~包(package)
  18. 【论文阅读】7-Discovering Structural Regularity in 3D Geometry
  19. Markdown使用学习笔记(第一次,拉的很,别骂了,别骂了)
  20. 474922-22-0,DSPE-PEG2000-Mal,磷脂酰乙醇胺-聚乙二醇2000-马来酰亚胺

热门文章

  1. 当你登录Github要求你邮箱验证身份,但是你的邮箱登录不了?
  2. Download the React DevTools for a better development experience
  3. Signatures of Correct Computation 学习笔记
  4. 上世纪八九十年代收音机的拆解美图,非常佩服这些老工程师!
  5. 软件工程作业-软件案例分析
  6. 微信小程序联盟:官方文档+精品教程+demo集合(5月31日更新,持续更新中……)...
  7. html文本的背景,HTML---CSS字体,文本,背景和边框属性
  8. 为什么计算机打不开优盘,为什么新电脑打不开u盘的解决方法
  9. 想找合适的仓库库存管理系统?不妨先来百数免费试用体验吧
  10. matlab如何修改三维箭头类型,matlab画三维箭头