第一回:Scrapy的试水
前言:今天算是见到Scrapy的第二天,之前只是偶尔查了查,对于这个框架的各种解释,我-----都-----看------不------懂----,没办法,见面就是刚。
目的:如题,试水
目标:《伯乐在线》python版(不要问我怎么老是惹伯乐,好欺负)的“实践项目”的一页的文章标题和简介,导入Mysql数据库。
配置:win7+python3.4+Scrapy1.4+phpStudy(主要用它的mysql数据库)
完成时间:2017-7-27(历时2天)
作者:羽凡
-------------------------------------------------------------------无敌的-------------------------------------------------------------------------------------------------------------------------
正文:
scrapy的安装我就不说了,有事没事问度娘。。。。
第一步:创建项目,命令:scrapy startproject bole
成功的话就生成了这些
今天除了第三和第五个没用到,其他都有修改。
看看咋们的目标状态:
我要的是“图解机器学习。。。。”和“开发人员经常说。。。。”这两项(先简单点)
第二步:修改items.py文件
用过django的可能觉得熟悉这个东西,这就像个中转或是暂时仓库,你从网页上找到想要的东西总得放个地方吧,这里就为它们开辟了空间,这个空间在爬虫主体(spider文件夹里)会被引用(from ..items import BoleItem),空间开辟好了,items.py就改好了。
第三步:创建爬虫主体。命令:scrapy genspider -t basic Bole jobbole.com
关于命令中的有些参数我也不太清楚,genspider-生成爬虫 -t :不知道 basic:不知道 Bole:爬虫名字 jobbole.com:目标域名
该命令在spider文件夹下生成Bole.py
经过修改后的样子
这里start_urls是第一页的网址。下面的parse函数是对返回结果的处理,我们需要的数据也是在这里产生的,这里用到了xpath来搜索数据,功能与re正则差不多,还可以看到在items.py中开辟的空间在这里用到了。(假如把return item 换成 print(item[‘title’])就可以看到抓到的标题了)
加餐第四步:数据导入mysql数据库(修改setting.py和pipelines.py文件)
先是pipelines.py:
被我注释掉的是链接数据库并创建相应的库/表/项。如果你是手工用SQL来创建好的,就注释掉吧,要不然还要修改下,这里将中转的东西通过SQL指令导入数据库里了
接下来修改setting.py使上面的修改管用:
找到这行,并解除注释,就像开了水龙头。。。。
开启Mysql,运行爬虫:
--nolog是为了不打印一串日志记录,如果排查错误就不加。
以上是结果。
-----------------------------------------------------------------------无敌的我-----------------------------------------------------------------------------------------------------------------------------------
是不是写的很水,我自己都尴尬了,没办法,才真正自学两天,明天,哦不,今天在理理思路,期待第二回早点写来。
困了,睡觉。 By:羽凡 2017-7-28-0:33
第一回:Scrapy的试水的更多相关文章
- UITableView(自定义cell)试水心得
初次试水自定义cell的UITableView 实现目标 最终实现结果 界面复原度:98% 未能完全复刻的地方:下半部分的tableview与头部的控件间距上的误差 原因:在做table ...
- CSharpGL(49)试水OpenGL软实现
CSharpGL(49)试水OpenGL软实现 CSharpGL迎来了第49篇.本篇内容是用C#编写一个OpenGL的软实现.暂且将其命名为SoftGL. 目前已经实现了由Vertex Shader和 ...
- phaser2->3:来个打地鼠试水
本文中phaser具体版本 phaser2:2.8.1 phaser3:3.17.0 一.实现效果二.实现细节三.项目总结四.参考文档 一.实现效果 源码地址(phaser2&phaser3) ...
- 想写个小说,关于C#的,名字就叫《原Csharp》吧 (第一回 买书未成炁自生 惶惶回屋遇老翁)
以前也有写过一些小说,但是总是写写停停的,因为忙于项目和其他事情,总是耽搁很久(真的是很久)才会继续动两笔,所以我想先在这里以随笔的方式写个关于C#异世界的小故事吧,更新随缘,也稍微能让自己轻松些. ...
- POJ 2502 - Subway Dijkstra堆优化试水
做这道题的动机就是想练习一下堆的应用,顺便补一下好久没看的图论算法. Dijkstra算法概述 //从0出发的单源最短路 dis[][] = {INF} ReadMap(dis); for i = 0 ...
- Volley使用指南第一回(来自developer.android)
最近闲来想看看android网络方面的东西.google在2013年发布了一个叫做Volley的网络请求框架,我看了一下官网,居然在training里面就有教程.首先,英文的东西看着 还是挺不爽的,特 ...
- 大众点评试水O2O新模式:实体店试穿,扫描二维码付款 现场取货
在餐饮美食行业取得不错的成绩之后,大众点评将触角延伸到了线下的传统商铺,开始涉足线下商品的 O2O 团购.和传统的线上下单,线下消费的 O2O 模式不同.大众点评的 O2O 团购用户,可在店内试穿后通 ...
- Json.Net6.0入门学习试水篇
原文:Json.Net6.0入门学习试水篇 前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中 ...
- Django 1.10中文文档-第一个应用Part5-测试
本教程上接教程Part4. 前面已经建立一个网页投票应用,现在将为它创建一些自动化测试. 自动化测试简介 什么是自动化测试 测试是检查你的代码是否正常运行的行为.测试也分为不同的级别.有些测试可能是用 ...
随机推荐
- javascript事件委托机制详解
以个人前端工作面试经历来看,javascript事件委托是问的最多的一类题目之一,熟悉事件委托能够了解你对于javascript的掌握程度. 面试官可能问一下问题,现在有5个li待办事件,需要实现当点 ...
- Linux命令 查看文件内容
cat [功能说明] 查看文件的内容 #cat本身是一个串接命令,把指定一个或多个源文件的内容,利用>符号重定向到目标文件中,如果不指定重定向文件,则默认在标准输出设备上显示.此时,可以利用c ...
- API 接口规范
整体规范建议采用RESTful 方式来实施. 1. 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全. 2. 域名 应该尽量将API部署在专用域名之下. https://a ...
- C#继承的执行顺序
自己对多态中构造函数.函数重载执行顺序和过程一直有些不理解,经过测试,对其中的运行顺序有了一定的了解,希望对初学者有些帮助. eg1: public class A { public A() { Co ...
- PHP+MySql实现后台数据的读取
我们使用的是PHP 的php_mysqli扩展 首先了解一些基础的用法 1.连接数据库使用 mysqli_connect() 参数:①主机地址 ②MYSQL用户名 ③MYSQL密码 ④选择 ...
- 我的学习之路_第二十三章_HTML
Html : 超级文本语言 ( Hyper text Markup Language ) HTML 文件扩展名是 * .html HTML 结构都是有标签组成 通常情况下标签有开始标签和结束标签组成 ...
- 异常:java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Workbook.getCellStyleAt
背景 最近公司所有新项目要使用最新高效快速开发框架nature-framework,框架本身结合NatureMap已经集成excel的高效导入功能,我们要实现高性能的导出功能,因为最新的jxls-2. ...
- laravel中间件使用
1.在app/Http/Kernel.php文件中配置中间件文件,例如: protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Mi ...
- 使用 Live555 搭建流媒体服务器
最近因为工作需要,需要搭建流媒体服务器,所以研究了一下,在此分享我的搭建过程. 搭建过程还是非常简单的! 搭建环境为Centos 7.2 64bit 一.安装gcc编译器 yum install gc ...
- Spring框架下的定时任务quartz框架的使用
手头的这个项目需要用到定时任务,但之前没接触过这东西,所以不太会用,从网上找资料,大致了解了一下,其实也不难.Java的定时任务实现有三种,一种是使用JDK自带的Timer那个类来实现,另一种是使用q ...