07 2020 档案

摘要:scrapy中已经为我们封装好了一个专门基于图片请求和持久化存储的管道类ImagesPipeline,如果想要基于scrapy实现图片数据的爬取,则可以直接使用该管道类即可 在配置文件中进行如下配置: IMAGES_STORE = ‘./imgs’:表示最终图片存储的目录 爬虫文件 import s 阅读全文
posted @ 2020-07-27 18:14 bibicode 阅读(263) 评论(0) 推荐(0)
摘要:增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加。在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。 降低日志级别: 降低日志级别: 在运行scrapy时,会有大量日志信息的输出,为了减少CPU的使用率。可以设置l 阅读全文
posted @ 2020-07-27 16:02 bibicode 阅读(289) 评论(0) 推荐(0)
摘要:有时候,我们爬取的数据不在同一个页面中,例如,我们爬取qiushibaike,qiushibaik的标题,作者在首页,而要爬取的段子详情在另一个页面。这时我们就需要用到请求传参。 请求传参的使用场景 当我们使用爬虫爬取的数据没有存在于同一张页面的时候,则必须使用请求传参 爬虫文件 import sc 阅读全文
posted @ 2020-07-27 15:59 bibicode 阅读(271) 评论(0) 推荐(0)
摘要:大部分的网站展示的数据都进行了分页操作,那么将所有页码对应的页面数据进行爬取就是爬虫中的全站数据爬取。 基于scrapy如何进行全站数据的爬取? 使用request方法,给callback传参(函数), 函数解析请求回来的数据,实现全站数据爬取 爬虫文件 import scrapy from lea 阅读全文
posted @ 2020-07-27 14:58 bibicode 阅读(315) 评论(0) 推荐(0)
摘要:定义两个管道类,每个管道类中重写process_item(self, item, spider) pipelines.py # 这个类把数据保存进数据库 class save_to_db: def process_item(self, item, spider): # 要返回item给下一个类调用 阅读全文
posted @ 2020-07-27 14:12 bibicode 阅读(135) 评论(0) 推荐(0)
摘要:scrapy框架中已经为我们专门集成好了高效、便捷的持久化操作功能,我们直接使用即可。 这两个组件配合爬虫文件实现数据持久化 items.py:数据结构模板文件。定义数据属性。 pipelines.py:管道文件。接收数据(items),进行持久化操作。 持久化流程: 1.爬虫文件爬取到数据后,需要 阅读全文
posted @ 2020-07-27 14:01 bibicode 阅读(623) 评论(0) 推荐(0)
摘要:爬取糗事百科首页,把标题和作者写入到本地文件 创建糗事百科爬虫 scrapy genspider qiushi https://www.qiushibaike.com/ qiushi.py代码 import scrapy class QiushiSpider(scrapy.Spider): name 阅读全文
posted @ 2020-07-27 11:29 bibicode 阅读(138) 评论(0) 推荐(0)
摘要:创建scrapy项目 scrapy startproject first_scrapy cmd命令切换目录到first_scrapy cd first_scrapy 创建爬虫文件 scrapy genspider first_crawl www.web.com cmd命令切换目录到first_cra 阅读全文
posted @ 2020-07-27 10:36 bibicode 阅读(97) 评论(0) 推荐(0)
摘要:表结构 from django.db import models class Menu(models.Model): """ 菜单 """ title = models.CharField(verbose_name='菜单', max_length=32) icon = models.CharFie 阅读全文
posted @ 2020-07-18 00:00 bibicode 阅读(101) 评论(0) 推荐(0)
摘要:以下演示collection是集合名 以key为基准去重查看 db.collection.distinct("keyname") 查询命令 等于 db.collection.find({"name": "jack"}) 小于 查询小于10的数据 db.collection.find({"count" 阅读全文
posted @ 2020-07-09 09:30 bibicode 阅读(153) 评论(0) 推荐(0)
摘要:如何实现分布式? 安装一个scrapy-redis的组件 原生的scrapy是不可以实现分布式爬虫,必须要让scrapy结合着scrapy-redis组件一起实现分布式 为什么原生的scrapy不可以实现分布式? 调度器不可以被分布式集群共享 管道不可以被分布式集群共享 scrapy-redis组件 阅读全文
posted @ 2020-07-05 16:47 bibicode 阅读(150) 评论(0) 推荐(0)
摘要:创建crawlspider scrapy genspider -t crawl crawlall www.xxx.com 打开crawlall.py import scrapy from scrapy.linkextractors import LinkExtractor # LinkExtract 阅读全文
posted @ 2020-07-05 11:06 bibicode 阅读(421) 评论(0) 推荐(0)