Scrapy模块的使用

在爬虫文件中

1.将解析到的页面数据存储至items对象中

2.使用yield关键字将items提交给管道文件进行处理

import scrapy
from scrapy_qiu123.items import ScrapyQiu123Item

class F1Spider(scrapy.Spider):
    name = ‘f1‘
    # allowed_domains = [‘www.qiushibaike.com‘]
    start_urls = [‘https://www.qiushibaike.com/text/‘]

    def parse(self, response):
        div_list = response.xpath(‘//div[@id="content-left"]/div‘)

        for i in div_list:
            # xpath解析到的都是selector对象,可以用extract获取数据
            author = i.xpath(‘./div/a[2]/h2/text()‘).extract()[0]
            content = i.xpath(‘.//div[@class="content"]/span/text()‘).extract_first()

            # 1将解析到的数据值(author和content)存储到items中
            item = ScrapyQiu123Item()
            item[‘author‘] = author
            item[‘content‘] = content

            # 2将item对象提交给管道
            yield item

  

  在items中

class ScrapyQiu123Item(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    author = scrapy.Field()
    content = scrapy.Field()

3.在管道文件中编写代码完成数据存储

  在pipelines文件中基于管道存储

class ScrapyQiu123Pipeline(object):
    fp = None
    def open_spider(self,spider):
        #整个爬虫过程中,该方法只会在开始爬虫的时候被调用一次
        self.fp = open(‘./qiubai.text‘, ‘w‘, encoding=‘utf-8‘)

    # 可接收爬虫文件传来的item,并且对item对象中的页面数据进行持久化存储
    # 每当爬虫文件向管道提交一次item,则该方法就会被执行一次
    def process_item(self, item, spider):
        author = item[‘author‘]
        content = item[‘content‘]

        # 持久化存储
        self.fp.write(author+":"+content+"\n\n\n")
        return item

    def close_spider(self,spider):
        # 整个爬虫过程中,该方法只会在结束爬虫的时候被调用一次
        self.fp.close()

   在pipelines文件中基于存储于mysql中

class ScrapyByMysql(object):
    conn = None
    cursor = None

    def open_spider(self,spider):
        #链接数据库
        self.conn = pymysql.Connect(host=‘127.0.0.1‘,port=3306,user=‘root‘,password=‘‘,db=‘scrapy_data‘)

    def process_item(self, item, spider):
        # 向数据库存储相关代码
        author = item[‘author‘]
        content = item[‘content‘]
        sql =‘insert into Scrapy_data value ("%s","%s")‘ % (author,content)
        self.cursor = self.conn.cursor()

        try:
            self.cursor.execute(sql)
            self.conn.commit()
        except Exception as e:
            print(e)
            self.conn.rollback()
        return item

    def close_spider(self,spider):
        # 整个爬虫过程中,该方法只会在结束爬虫的时候被调用一次
        self.cursor.close()
        self.conn.close()

  并在setting文件中设置

ITEM_PIPELINES = {   ‘scrapy_qiu123.pipelines.ScrapyQiu123Pipeline‘: 300,   ‘scrapy_qiu123.pipelines.ScrapyByMysql‘: 400,}

4.在终端执行操作

scrapy crawl f1 --nolog

原文地址:https://www.cnblogs.com/zhuzhiwei-2019/p/10909209.html

时间: 2024-08-02 10:47:05

Scrapy模块的使用的相关文章

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip install Scrapy 手动源码安装,比较麻烦要自己手动安装scrapy模块以及依赖模块 安装以下模块 1.lxml-3.8.0.tar.gz (XML处理库) 2.Twisted-17.5.0.tar.bz2 (用Python编写的异步网络框架) 3.Scrapy-1.4.0.tar.gz

第三百二十四节,web爬虫,scrapy模块介绍与使用

第三百二十四节,web爬虫,scrapy模块介绍与使用 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy 使用了 Twisted异步网络库来处理网络通讯.

scrapy模块安装冲突的解决方法

from cryptography.hazmat.bindings._openssl import ffi, lib ImportError: DLL load failed: 找不到指定模块 原因: 在python3和Anconda下都安装了scrapy模块,引起了冲突 解决: 卸载一个scrapy即可解决问题 1 python3 -m pip uninstall scrapy 卸载之后,就可以正常运行,在cmd命令行下输入: scrapy 创建scrapy新的项目 scrapy startp

windows下安装Scrapy及scrapy模块介绍

一:安装wheel  wheel介绍 二:安装twisted twisted是由python编写的一款基于事件驱动的网络引擎,使用twisted模块将python的异步请求(异步模型介绍)成为可能且简单易用.Twisted介绍 三:创建scrapy文件 使用命令窗口进入目标目录后 使用命令 scrapy startproject project_name 工程目录结构如图 四:启动爬虫程序 scrapy crawl first --nolog #启动时,不输出日志文件 scrapy crawl

web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签

标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需要导入模块:from scrapy.selector import HtmlXPathSelector select()标签选择器方法,是HtmlXPathSelector里的一个方法,参数接收选择器规则,返回列表元素是一个标签对象 extract()获取到选择器过滤后的内容,返回列表元素是内容 选择器规则 //x 表示向下查找n层指定标签,如://div 表示查找所有div标签

Scrapy模块

1. Scrapy选择器XPath和CSS scrapy提取数据有自己的一套机制,他们被称为选择器(selector),通过特定的XPath或者CSS表达式来"选择""HTML文件中的某个部分" Xpath是一门在XML文件中选择节点的语言,也可以用在HTML,CSS是一门将HTML文档样式化的语言,选择器由他定义,并于特定的HTML元素的样式相关联 scrapy的选择器构建与lxml库之上,这意味着他们的速度和解析准确性上非常相似. (1). Xpath选择器 在

scrapy模块安及使用

一.Windows安装 Twisted下载及安装 在https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载对应的Twisted的版本文件 在命令行进入到Twisted的目录 执行pip install 加Twisted文件名 执行命令 pip install scrapy 二.Ubuntu安装 下载twisted wget https://files.pythonhosted.org/packages/90/50/4c315ce5d119f67189d181

python之scrapy模块scrapy-redis使用

1.redis的使用,自己可以多学习下,个人也是在学习 https://www.cnblogs.com/ywjfx/p/10262662.html官网可以自己搜索下. 2.下载安装scrapy-redis pip install scrapy-redis 3.下载好了,就可以使用了,使用也很简单,只需要在settings.py配置文件添加一下四个 #######redis配置####### DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFi

python2 安装scrapy出现错误提示解决办法~

首先:set STATICBUILD=true && pip install lxml 安装环境: windows7操作系统,已经正确安装python,pip. 使用pip功能安装Scrapy模块,当输入命令后出现: ERROR: command "python setup.py egg_info" failed with error code 1 in ... 但是测试了pip安装其他模块是正常的. 按照:http://scrapy-chs.readthedocs.i