0
点赞
收藏
分享

微信扫一扫

2.爬虫框架scrapy全部笔记

荷一居茶生活 2022-01-17 阅读 64
爬虫python

 1、cmd创建项目
 scrapy startproject 项目名

 2、创建爬虫
 进入到刚刚创建的项目下的spiders目录中,scrapy genspider 爬虫名 域名
  如: scrapy genspider douban douban.com
 
 3、
 用pycharm打开项目,在爬虫文件中开始编写爬虫代码。
         改start_urls中的起始页
         在默认的parse方法中去写处理该页面的提取内容代码

  4、在items中完成爬取数据字段的实体,如:
        name = scrapy.Fileds()
        price =scrapy.Fileds()
   
  5、在parse方法中,通过response.path完成页面的解析。如:
        li_list = response.xpath('//div[@id="xxx"]/ul/li') #获取某个div下所有的li
        for li in li_list:
             #通过li继续获取每个li下面需要的数据,如下:
             xxx = li.xpath('.//xxx[@xxx="xxx"]/xxx/text()').extract_first()  #如果一个内容则直

接提取
             #多个内容需要通过extract()获取后得到的是数组
             如果有内页:
             ny_url = li.xpath('../.../a/@href').extract_first()
             #继续发送内页请求
             yield scrapy.Request(url=ny_url,callback=self.解析内页的方法名)

 6、定义解析内页或者其他页面的方法:
       def parse_ny(self,response):
           .....解析内页


  7、数据封装
 from 项目名.items import  items.py文件中的实体类的名称


 def parse(self,response):
    需要使用的时候先创建实体对象,或者在循环中创建实体对象
    item = 实体类名称()
    item['实体类字段'] = 数据
    item['实体类字段'] = 数据

   如果需要将实体对象传入下一个解析方法继续处理的。
   yield scrapy.Request(url=下一个url,meta={'自己起名称':item},callback=self.parse方法)

  def parse方法(self,response):
         item = response.meta['自己起的名称']
         #继续向item中添加其他爬取的数据字段
        item['xxx'] =xxx
        #数据装完,返回给实体管道
        yield item
      

举报

相关推荐

0 条评论