1. 使用cmd+R命令进入命令行窗口,并进入你需要创建项目的目录

  1. cd 项目地址

2. 创建项目

  1. scrapy startproject <项目名>
  2. cd <项目名>

例如

  1. scrapy startproject quote
  2. cd quote

3. 编写item.py文件(定义需要爬取的文件)

  1. import scrapy
  2. class QuoteItem(scrapy.Item):
  3. # define the fields for your item here like:
  4. text = scrapy.Field()
  5. author = scrapy.Field()
  6. tags = scrapy.Field()

4. 创建爬虫文件

  1. scrapy genspider <爬虫文件名> <域名>

例如

  1. scrapy genspider myspider quotes.toscrape.com

5. 编写myspider.py文件

  1. import scrapy
  2. from quote.items import QuoteItem
  3. class MyspiderSpider(scrapy.Spider):
  4. name = 'myspider'
  5. allowed_domains = ['quotes.toscrape.com']
  6. start_urls = ['http://quotes.toscrape.com/']
  7. def parse(self, response):
  8. for each in response.xpath('//div[@class="quote"]'):
  9. item = QuoteItem()
  10. item['text'] = each.xpath('./span/text()').extract()[0]
  11. item['author'] = each.xpath('.//small/text()').extract()[0]
  12. list = each.xpath('.//a[@class="tag"]/text()').extract()
  13. #列表形式的文件不能存入mysql,需要弄成str形式
  14. item['tags']= '/'.join(list)
  15. yield item
  16. next = response.xpath('//li[@class="next"]/a/@href').extract()[0]
  17. url = response.urljoin(next)
  18. yield scrapy.Request(url=url,callback=self.parse)

6. 编写pipelines.py(如果需要存入到数据库)

  1. import pymysql.cursors
  2. class QuotePipeline(object):
  3. def __init__(self):
  4. self.connect = pymysql.connect(
  5. host='localhost',
  6. user='root',
  7. password='',
  8. database='quotes',
  9. charset='utf8',
  10. )
  11. self.cursor = self.connect.cursor()
  12. def process_item(self, item, spider):
  13. item = dict(item)
  14. sql = 'insert into quote(text,author,tags) values(%s,%s,%s)'
  15. self.cursor.execute(sql,(item['text'],item['author'],item['tags']))
  16. self.connect.commit()
  17. return item
  18. def close_spider(self,spider):
  19. self.cursor.close()
  20. self.connect.close() 

7. 修改setting.py文件

  1. ROBOTSTXT_OBEY = True

8. 运行

  1. scrapy crawl myspider

9. 保存为csv文件

  1. scrapy crawl quotes o quotes.csv

参考资料

https://www.cnblogs.com/shuimohei/p/10491833.html

https://blog.csdn.net/ck784101777/article/details/104468780/

scrapy爬虫 简单入门的更多相关文章

  1. Scrapy 爬虫框架入门案例详解

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:崔庆才 Scrapy入门 本篇会通过介绍一个简单的项目,走一遍Scrapy抓取流程,通过这个过程,可以对 ...

  2. scrapy爬虫简单项目入门练习

    [写在开头] scrapy环境配置配置好了之后,开始着手简单项目入门练习.关于环境配置见上一篇博客https://www.cnblogs.com/ljxh/p/11235079.html. [正文部分 ...

  3. Scrapy爬虫快速入门

    安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...

  4. Python之Scrapy爬虫框架 入门实例(一)

    一.开发环境 1.安装 scrapy 2.安装 python2.7 3.安装编辑器 PyCharm 二.创建scrapy项目pachong 1.在命令行输入命令:scrapy startproject ...

  5. scrapy爬虫框架入门教程

    scrapy安装请参考:安装指南. 我们将使用开放目录项目(dmoz)作为抓取的例子. 这篇入门教程将引导你完成如下任务: 创建一个新的Scrapy项目 定义提取的Item 写一个Spider用来爬行 ...

  6. scrapy爬虫框架入门实例(一)

    流程分析 抓取内容(百度贴吧:网络爬虫吧) 页面: http://tieba.baidu.com/f?kw=%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB&ie=ut ...

  7. 【python】Scrapy爬虫框架入门

    说明: 本文主要学习Scrapy框架入门,介绍如何使用Scrapy框架爬取页面信息. 项目案例:爬取腾讯招聘页面 https://hr.tencent.com/position.php?&st ...

  8. Python爬虫简单入门及小技巧

    刚刚申请博客,内心激动万分.于是为了扩充一下分类,随便一个随笔,也为了怕忘记新学的东西由于博主十分怠惰,所以本文并不包含安装python(以及各种模块)和python语法. 目标 前几天上B站时看到一 ...

  9. [Python] Scrapy爬虫框架入门

    说明: 本文主要学习Scrapy框架入门,介绍如何使用Scrapy框架爬取页面信息. 项目案例:爬取腾讯招聘页面 https://hr.tencent.com/position.php?&st ...

随机推荐

  1. .net core 和 WPF 开发升讯威在线客服与营销系统:(插曲)一次端口攻击行为的分析与应对

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  2. ConstraintLayout 学习笔记

    如何阅读 xml 属性 与 Relativelayout 不同,ConstrainLayout 的属性需要同时说明需要怎么操作自己与目标控件,例如:layout_constraintLeft_toLe ...

  3. Linux嵌入式学习-mount命令+nfs挂载失败原因【转】

    NFS 挂载失败原因[待搜集] 1.挂载时若出现mount.nfs: Input/output error 解决:在客户端也需启动portmap服务 service portmap status[查看 ...

  4. Hadoop支持的压缩格式对比和应用场景以及Hadoop native库

    对于文件的存储.传输.磁盘IO读取等操作在使用Hadoop生态圈的存储系统时是非常常见的,而文件的大小等直接影响了这些操作的速度以及对磁盘空间的消耗. 此时,一种常用的方式就是对文件进行压缩.但文件被 ...

  5. 【WPF】 问题总结-RaidButton修改样式模板后作用区域的变化

    最近工作需要,需要重绘RaidButton控件,具体想要达成的的效果是这样的: 当点击按钮任意一个地方的时候,按钮的背景改变. 于是我是这样对控件模板进行修改的: <Style x:Key=&q ...

  6. 高性能MySQL学习总结二----常见数据类型选择及优化

    一.数据类型的选择 MySQL的数据类型有很多种,选择正确的数据类型对于获得高性能特别地重要,如何选择合适的数据类型呢?主要遵从以下三个原则: 1.更小的通常情况下性能更好 一般情况下,应该尽量使用可 ...

  7. python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (二)

    Hey! 如果你还没有看这篇的上文的话,可以去稍稍瞅一眼,会帮助加速理解这一篇里面涉及到的递归结构哦!(上一篇点这里:<python实例:解决经典扑克牌游戏 -- 四张牌凑24点 (一)> ...

  8. java nio中,HeapByteBuffer与DirectByteBuffer的区别

    HeapByteBuffer,顾名思义,是写在jvm堆上面的一个buffer,底层的本质是一个数组,用类封装维护了很多的索引(limit/position/capacity等) DirectByteB ...

  9. CountDownLatch/CyclicBarrier/Semaphore 使用过吗

    CountDownLatch 让一些线程堵塞直到另一个线程完成一系列操作后才被唤醒.CountDownLatch 主要有两个方法,当一个或多个线程调用 await 方法时,调用线程会被堵塞,其他线程调 ...

  10. [从源码学设计]蚂蚁金服SOFARegistry 之 ChangeNotifier

    [从源码学设计]蚂蚁金服SOFARegistry 之 ChangeNotifier 目录 [从源码学设计]蚂蚁金服SOFARegistry 之 ChangeNotifier 0x00 摘要 0x01 ...