爬虫之Scrapy的安装与基本使用

安装

pip install scrapy

基本使用 

创建项目

scrapy startproject 项目名

cd 项目名

生成爬虫

  • 创建spider爬虫:scrapy genspider 爬虫名 允许的域名
  1. 爬虫类需要继承scrapy.Spider
  2. 爬虫的名字: name
  3. 允许的域名: allowed_domains
  4. 起始的url: start_urls
  5. 解析函数:
  • 创建crawlspider爬虫:scrapy genspider -t crawl 爬虫名称 允许的域
  1. 完善提取URL的规则
  2. Rule表示规则
    1. rules是一个元组或者是列表 --> Rule对象
    2. rules = (Rule(LinkExtractor(allow=r'Items/'), callback='parse_item', follow=True),)
  • LinkExtractor[必选]:连接提取器,可以通过正则或者是xpath来提取URL
  • allow: 用于指定一个正则表达, 只有与该正则匹配的链接才被提取出来
  • restrict_xpaths: 用于指定一个XPATH, 只有该XPATH指定的区域中链接才被提取出来
  • callback[可选]: 表示经过连接提取器提取出来的url对应响应的解析函数,可以没有,表示该响应不需要解析函数来处理
  • follow[可选]:连接提取器提取的url地址对应的响应是否还会继续被rules中的规则进行提取,True表示会,False表示不会

完善爬虫

  • response.xpath('xpath语法') --> 返回selector对象
  • extract() --> 返回提取到的字符串列表 --> 无数据[]
  • extract_first() --> 返回提取到的第一个字符串 --> 无数据None

注意: yield后不可以接列表

保存数据 

  • 完善Pipeline类
  • 在settings.py中开启管道

运行项目

scrapy crawl 爬虫名

CrawlSpider 与 Spider如何选择

  自定义爬虫, 是继承CrawlSpider 还是 Spider呢?

  • 一般当一类页面中可以获取所有数据的时候, 使用CrawlSpider
  • 需要从多类页面中提取数据, 进行组合, 使用Spider
posted @ 2019-10-25 21:10  一心取信  阅读(179)  评论(0)    收藏  举报