爬虫---scrapy

scrapy

ubuntu安装:

  • python3安装依赖库:sudo apt-get install python3 python3-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
  • 通过pip 安装 Scrapy 框架命令:sudo pip3 install scrapy

基本流程:

  1. startproject 创建一个新工程–scrapy startproject MySpider
  2. 进入项目目录 cd MySpider
  3. 在当前项目里创建爬虫: scrapy genspider atguigu ‘www.atguigu.com’
  4. 运行爬虫: scrapy crawl name

scrapy项目:自定义爬虫程序

  • 需要引入item字段:from 项目名.items import 项目Item
  • name:与爬虫程序相同
  • allowed_domains : 定义爬取的域名(可以省略或者写多个)
  • start_urls 爬取的起始网址
  • parse_item方法中写解析数据的代码,获取数据方式text = response.xpath('//div[@class="name"]/text()').extract()[0]
  • item需要创建一个实例化对象 item = nameItem()
  • 将数据放入itemitem['title']=title
  • yirld item 将每条数据返回

scrapy项目:items

  • MyscrapyItem类中定义要输出的变量 如:teacher_name = scrapy.Field()

scrapy项目:settings:

  • 配置图片保存路径 : IMAGES_STORE = “./Image”
  • ROBOTSTXT_OBEY = True 是否遵守爬虫协议
  • ITEM_PIPELINES 填写pipelines的路径,自定义输出管道 数字值越小优先级越高
  • COOKIES_ENABLED = False#是否启用cookie,默认是启用,要设置不起来,防止别人知道我们
  • LOG_FILE=’name.txt’ 日志保存文件
  • LOG_LEVEL=’DEBUG’ 日志打印级别

scrapy项目:pipelines:

  • 自定义输出管道
  • 自定义函数需要带(self,spider)两个参数
  • def open_spider(self, spider):
  • process_item方法必须写,而且不能修改名称,item是对应的数据,spider是爬虫
  • def close_spider(self,spider):
    使用pycharme运行爬虫

在项目根目录下创建一个py文件name任意,代码:

  • from scrapy import cmdline
  • cmdline.execute(“scrapy crawl atguigu”.split()) 参数为终端运行代码相同

创建规则爬虫

  1. scrapy genspider -t crawl spider_name xx.com
  2. spider_name.py:
    rules: 规则,可放多个规则的列表或元组
    rules = (
    Rule(LinkExtractor(allow=r’Items/’), callback=’parse_item’, follow=True),
    第一个参数是链接提取器(allow是正则,为空则取所有连接,deny取反)
    第二个参数是回调
    第三个参数是:是否允许深度爬取(follow=False只爬取当前页面)
    )

猜你喜欢

转载自blog.csdn.net/qq_39926957/article/details/80329469
今日推荐