关闭

我的Python学习笔记(6) 初探网络爬虫scrapy

标签: 网络爬虫python
256人阅读 评论(0) 收藏 举报
分类:

引用来源,《Python网络爬虫实战》,不过这本书不太推荐,很多错别字和错误的地方,代码也不标准。

不知道是否过时了。。文中的例子是自己改的,因为书中的网站已经不能访问了。所以说明和代码分开看吧。
因为代码是我后来改的。

后来发现还是看规范的教程比较好,这本书实在是不推荐了。

Github地址

创建工程

可以通过下面的语句来创建工程

cd

cd code/crawler/scrapyProject/

scrapy startproject todayMovie

tree todayMovie

文件树如下图所示:

C:\PROJECTS\PYTHONANDGIS\SCRAPY\TODAYMOIVE
│  scrapy.cfg
│
└─todayMovie
    │  items.py
    │  pipelines.py
    │  settings.py
    │  __init__.py
    │
    └─spiders
            __init__.py

创建spider

cd todayMovie

scrapy genspider wuHanMoiveSpider jycinema.com

scrapy genspider命令创建一个名字为wuHanMoiveSpider的爬虫脚本。这个脚本搜索的域为jycinema.com。

在本次的爬虫项目示例中,需要修改、填空的只有4个文件,它们分别是items.py、settings.py、pipelines.py、wuHanMoiveSpider.py。

  • 其中items.py决定爬取哪些项目,
  • wuHanMoiveSpider.py决定怎么爬,
  • settings.py决定由谁去处理爬取的内容,
  • pipelines.py决定爬取后的内容怎样处理。

文件结构大概如上面所示,第一次通过模板创建了基本的文件结构之后,二周目就可以自己创建文件了。不需要通过模板。
- 创建一个文件夹,叫spiders,里面创建一个自己的spider,从Scrapy.Spider继承,注意需要赋值名字
- 创建一个items.py文件,里面定义一个item类,同样给一个名字
- 创建一个pipelines.py文件,里面顶一个pipeline,从object继承
- 创建一个settings。注意需要定义spider模块和文件夹,和使用的pipelines
- 在外层创建一个cfg,否则识别不了这个文件夹是scrapy的文件,从而就不能一层层的解析出各个spider

爬虫编写

目标:这个爬虫只爬取最近电影名字

PartI: spider
- 在spider的starturl中设置需要爬取的url
- 通过xpath等来获取爬取的内容

xpath的简易结构如下:

表达式 描述
nodename    选取此节点的所有子节点。
/   从根节点选取。
//  从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
.   选取当前节点。
..  选取当前节点的父节点。
@   选取属性。

似乎需要yield一下各个item,要不然pipeline不能运行,不知道具体原理是什么

Part II: item

只需告诉它一个名字就行

Part III: pipelines

设置开启关闭爬虫和运行过程中需要做的事情。
大概就是开启爬虫时,调用一次,爬取数据中每个item 调用(yield)的时候运行一次,关闭爬虫的时候运行一次

Part IV: settings
大概就是设置pipeline和优先级

运行

scrapy crawl wuHanMovieSpider

pycharm中调试

我在这儿创建了一个文件,pycharm_debugger.py,里面就是,我们在控制台运行 crawl spider实际运行的语句,在pycharm的config中按代码中设置好,就能调试了。

1
0
查看评论

教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

来源:http://www.cnblogs.com/wanghzh/p/5824181.html 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力。本文以校花网为例进行爬取,校花网:http://www.xiaohuar.co...
  • freeking101
  • freeking101
  • 2016-11-07 16:04
  • 2788

Python网络爬虫3 ---- ubuntu下安装爬虫框架scrapy

原文转载自:http://www.cnblogs.com/HelloPython/ 根据Scrapy安装指南(http://doc.scrapy.org/en/latest/intro/install.html) Don’t use the python-...
  • cgl1079743846
  • cgl1079743846
  • 2014-02-20 20:12
  • 4283

python Scrapy 轻松定制网络爬虫

网络爬虫(Web Crawler, Spider)就是一个在网络上乱爬的机器人。当然它通常并不是一个实体的机器人,因为网络本身也是虚拟的东西,所以这个“机器人”其实也就是一段程序,并且它也不是乱爬,而是有一定目的的,并且在爬行的时候会搜集一些信息。例如 Google 就有一大堆爬虫会在 Intern...
  • huaweitman
  • huaweitman
  • 2013-07-21 21:46
  • 2088

[Python]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程

爬虫框架Scrapy的第一个爬虫示例入门教程。 我们使用dmoz.org这个网站来作为小抓抓一展身手的对象。 首先先要回答一个问题。 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Items):明确你想要...
  • wxg694175346
  • wxg694175346
  • 2014-02-23 20:52
  • 187053

一步一步学网络爬虫(从python到scrapy)

大概花了一个星期的时间,学习了一下网络爬虫的知识,现在使用scrapy能爬一些基本的网页,图片,解决网页编码兼容问题,基础的模拟登陆。对于有些模拟登陆,由于其提交的表单要经过js进行处理后提交;更难的其网页也是经js渲染的,要学会一步步去分析,没有太多的去深入,但我会提到基本的分析方法。 参考文章...
  • sunnyxiaohu
  • sunnyxiaohu
  • 2016-03-03 11:54
  • 27933

scrapy学习笔记——Python网络爬虫利器(入门教程)

因为工作原因要到网络上抓取一些新闻数据来分析,实在不想自己分析链接
  • deerlux
  • deerlux
  • 2014-09-18 21:46
  • 989

Python学习笔记- 廖雪峰教程【python 2】//为继续学习爬虫准备-02 [待完善]

装饰器的作用: 1 简化代码,避免每个函数编写重复性代码:打印日志@log,检测性能 @performance,数据库事务 @transaction,URL路由@post('/register') import time def performance(f): ...
  • NaomiEdna
  • NaomiEdna
  • 2016-09-24 21:01
  • 1654

Python --- Scrapy 命令

Scrapy 命令 分为两种:全局命令 和 项目命令。全局命令:在哪里都能使用。项目命令:必须在爬虫项目里面才能使用。全局命令C:\Users\AOBO>scrapy -h Scrapy 1.2.1 - no active projectUsage: scrapy <command&...
  • github_35160620
  • github_35160620
  • 2016-11-26 06:57
  • 10492

基于Python2.7和Scrapy, 爬取豆瓣9分榜单

写开头         现在scrapy的安装教程都明显过时了,随便一搜都是要你安装一大堆的依赖,什么装python(如果别人连python都没装,为什么要学scrapy....)wisted, zope interface,pywin...
  • fly910905
  • fly910905
  • 2017-07-08 08:41
  • 850

基于Python+scrapy+redis的分布式爬虫实现框架

爬虫技术,无论是在学术领域,还是在工程领域,都扮演者非常重要的角色。相比于其他技术,爬虫技术虽然在实现上比较简单,没有那么多深奥的技术难点,但想要构建一套稳定、高效、自动化的爬虫框架,也并不是一件容易的事情。这里笔者打算就个人经验,介绍一种分布式爬虫框架的实现方法和工作原理,来给刚刚入门爬虫的同学们...
  • qq_30175203
  • qq_30175203
  • 2017-08-08 17:58
  • 983
    个人资料
    • 访问:192792次
    • 积分:3557
    • 等级:
    • 排名:第11006名
    • 原创:105篇
    • 转载:51篇
    • 译文:15篇
    • 评论:37条
    博客专栏
    文章分类
    站长统计