python scrapy持久化保存(保存到EXCEL文件中)

    科技2022-07-12  126

    scrapy持久化保存(保存到EXCEL文件中,之前无法执行pipeline中的代码,后来发现时setting中的ITEM_PIPELINES没有打开,现在可以正常运行咯)

    一、创建的项目名称和爬虫项目如下:项目叫yxq001,爬虫文件叫file001.py。怎么创建可以查看:

    https://blog.csdn.net/Di77HaoWenMing/article/details/108905515

    二、setting.py设置如下(其他地方没改)

    USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3756.400 QQBrowser/10.5.4043.400' # Obey robots.txt rules ROBOTSTXT_OBEY = False #显示指定类型的日志信息 LOG_LEVEL = 'ERROR'

    另外,还需要在设置中开启pipeline,因为待会保存到EXCEL中就需要用它来实现,把#注释去掉即可:

    ITEM_PIPELINES = { 'yxq.pipelines.YxqPipeline': 300, }

    三、file001.py代码如下

    import scrapy from yxq001.items import Yxq001Item class File001Spider(scrapy.Spider): name = 'file001' #allowed_domains = ['www.baidu.com'] start_urls = ['http://www.jkl.com.cn/cn/shopLis.aspx?id=862'] def parse(self, response): 名称 = response.xpath('//span[@class="con01"]/text()').extract() 名称 = [名称.strip() for 名称 in 名称] print(名称) #实例化一个item对象 item = Yxq001Item() #封装存储 item['名称'] = 名称 #将item提交给管道 return item

    四、items.py代码如下

    import scrapy class Yxq001Item(scrapy.Item): 名称 = scrapy.Field()

    五、pipelines.py代码如下

    import pandas as pd class Yxq001Pipeline: #处理item类型对象,接收爬虫文件传过来的item对象 def process_item(self, item, spider): print('正在写入数据') 名称 = item['名称'] mydata = pd.DataFrame({'店铺名称':名称}) mydata.to_excel('E:/python测试数据/店铺信息.xlsx',index=False) print('写入成功!') return item

    六、输入scrapy crawl file001执行即可

    scrapy crawl file001

     

    然后就可以正常爬取文件,并存储到EXCEL中咯

    Processed: 0.010, SQL: 8