crawl spider继承Spider类,Spider类的设计原则是只爬取start_url列表中的网页,而CrawlSpider类定义了一些规则(Rule)来提供跟进link的方便的机制,从爬取的网页中获取link并继续爬取的工作更适合,也可以重写一些方法来实现特定的功能。简单来说就是简单高效的爬取一些url比较固定的网址

This is the most commonly used spider for crawling regular websites, as it provides a convenient mechanism for following links by defining a set of rules. It may not be the best suited for your particular web sites or project, but it’s generic enough for several cases, so you can start from it and override it as needed for more custom functionality, or just implement your own spider.

Rule使用参数:

Rule(link_extractor=None, callback=None, cb_kwargs=None, follow=None, process_links=None, process_request=None, errback=None)

官方文档如下:

Spiders — Scrapy 2.5.1 documentation

案列:

1.创建项目:在scrapy安装目录下打开cmd窗口 执行 scrapy startproject pigyitong
2.创建一个crawlspider爬虫   scrapy genspider -t crawl pig "bj.zhue.com.cn"
https://bj.zhue.com.cn/search_list.php?sort=&pid=22&s_id=19&cid=2209&county_id=0&mid=&lx=&page=1  目标网址

由于发布作品的规范要求,这里只列出几个主要项目文件代码:

#pig.py

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from pigyitong.items import PigyitongItemclass PigSpider(CrawlSpider):name = 'pig'allowed_domains = ['bj.zhue.com.cn']start_urls = ['https://bj.zhue.com.cn/search_list.php?sort=&pid=22&s_id=19&cid=2209&county_id=0&mid=&lx=&page=1']rules = (Rule(LinkExtractor(allow=r'.*?sort=&pid=22&s_id=19&cid=2209&county_id=0&mid=&lx=&page=\d'),follow=False, callback='parse_item'),)def parse_item(self, response):# item['domain_id'] = response.xpath('//input[@id="sid"]/@value').get()# item['name'] = response.xpath('//div[@id="name"]').get()# item['description'] = response.xpath('//div[@id="description"]').get()tr = response.xpath('//tr[@bgcolor="#efefef"]/../tr')for i in tr[2:]:date = i.xpath('./td[1]/a/text()').get()province = i.xpath('./td[2]/a/text()').get()region = i.xpath('./td[3]/a/text()').get()p_name = i.xpath('./td[4]/a/text()').get()species = i.xpath('./td[5]/a/text()').get()price = i.xpath('./td[6]//li/text()').get()item = PigyitongItem(data=date, province=province, region=region, p_name=p_name, species=species, price=price)yield item

#pipelines.py

from itemadapter import ItemAdapter
from scrapy.exporters import JsonLinesItemExporter
class PigyitongPipeline:def __init__(self):self.f = open('猪易通.json', mode='wb')self.export = JsonLinesItemExporter(self.f, ensure_ascii=False, encoding='utf-8')def open_spider(self, spider):passdef process_item(self, item, spider):self.export.export_item(item)return itemdef close_spider(self, spider):self.f.close()

# item.py

import scrapyclass PigyitongItem(scrapy.Item):data = scrapy.Field()province = scrapy.Field()region = scrapy.Field()p_name = scrapy.Field()species = scrapy.Field()price = scrapy.Field()

# setting文件正常设置就好

没毛病!

scrapy框架之crawl spider相关推荐

  1. Scrapy 框架之 ——crawl Spiders

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012017783/article/details/76169807 </div>< ...

  2. python scrapy 框架精讲Spider类,顺手练习一下优设网

    python scrapy极细拆解 1.拆解 scrapy.Spider scrapy.Spider 核心实现的是 start_requests 方法 scrapy.Spider 属性值 scrapy ...

  3. Python爬虫-Scrapy框架(四)- 内置爬虫文件 - 4.2 初探Crawl Spider

    Python爬虫-Scrapy框架(四)- 内置爬虫文件 - 4.2 初探Crawl Spider 写在前面 初探Crawl Spider 创建Crawl Spider项目 对比Basic与Crawl ...

  4. scrapy框架 crawl spider 爬取.gif图片

    创建项目: scrapy startproject qiumeimei 建立爬虫应用: scrapy genspider -t crawl meimei www.qiumeimei.com 爬虫文件 ...

  5. python spider 安装_Python爬虫(11):Scrapy框架的安装和基本使用

    大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy.Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装. Scrapy的安装 Scrapy的安装是很麻烦的,对于一 ...

  6. Spider Scrapy 框架爬虫

    scrapy 是一款常用的爬虫框架,可以实现分布式爬虫和高性能的爬虫 scrapy 框架的创建实在cmd命令行下进行的: 首先要在命令行下转到你要创建的文件夹下: cd 目标文件夹路径 创建的是一个工 ...

  7. 32-CrawlSpider类爬虫与Spider类爬虫比较-【都是基于Scrapy框架】

    任务:爬取"阳光热线问政平台的每个投诉信息(标题.编号.内容.链接)"    要点:涉及翻页 比较:这两种方法都可以完成任务 方法一使用CrawlSpider类,其中涉及Rule来 ...

  8. 爬虫Spider 08 - chromedriver设置无界面模式 | selenium - 键盘操作 | 鼠标操作 | 切换页面 | iframe子框架 | scrapy框架

    文章目录 Spider 07回顾 cookie模拟登陆 三个池子 selenium+phantomjs/chrome/firefox Spider 08 笔记 chromedriver设置无界面模式 ...

  9. 爬虫Spider 09 - scrapy框架 | 日志级别 | 保存为csv、json文件

    文章目录 Spider 08回顾 selenium+phantomjs/chrome/firefox execjs模块使用 Spider 09笔记 scrapy框架 小试牛刀 猫眼电影案例 知识点汇总 ...

最新文章

  1. 人工手动冷备不完全恢复介绍(purge表不完全恢复)
  2. 信息安全系统设计基础家庭作业
  3. webpack 配置react脚手架(四):路由配置
  4. TCP三次握手建立连接四次挥手断开连接
  5. vb6中使text控件的光标随着增加的内容向下移动
  6. 【vsftpd】嵌入式linux简易配置vsftpd服务
  7. 数据仓库--基本概念
  8. sqlmap地表最强sql注入检测工具学习使用
  9. imp-00058: 遇到 oracle 错误 12560,MP-00058: 遇到 ORACLE 错
  10. UNIX环境高级编程(三)—— 静态链接库与动态链接库
  11. 前端开发中一些常用技巧总结
  12. 电气原理图制图相关GB标准
  13. 最全jar包下载链接
  14. 前端web开发培训,HTML表格标签,先收藏了
  15. Laravel框架介绍与简介
  16. 未来软件是什么样子?-SIF期货
  17. Springboot gzip解压http数据流
  18. c语言-输出菱形图案
  19. arp -s命令报错,ARP项添加失败:请求的操作需要提升。
  20. miRNA生物信息数据分析流程初探(一)

热门文章

  1. 为什么那些Python程序员这么厉害?
  2. proxifier使用
  3. 中国家庭服务行业发展前景预测及投资战略分析报告2022-2028年
  4. 初中计算机应用基础知识,论初中计算机学科的计算机基础教育
  5. hive partition
  6. 收件箱和发件箱 表设计_在收件箱中播放不错
  7. HR管理的未来在于云服务
  8. 谈谈BabyLinux制作过程
  9. 中山大学2021网络科学导论期中试卷
  10. ExcelVBA之Do while循环