爬虫

发布于 2020-05-13  1146 次阅读


7. scrapy 框架

具体信息点这里

1.requests与scrapy对比

requestsscrapy
页面级爬虫网站级爬虫
功能库框架
并发性考虑不足,性能较差并发性好,新能较高
重点在于页面下载重点在于爬虫结构
定制灵活深度定制困难

2. scrapy命令行格式

sctapy<command>[options][args]

3. scrapy常用命令

  • startproject:创建一个新工程
  • genspider:创建一个爬虫
  • settings:获取爬虫配置信息
  • crawl:运行一个爬虫
  • list:列出工程中的所有爬虫
  • shell:启动url调试命令行

8. scrapy 使用步骤

1.建立一个scrapy爬虫工程

(base) C:\Users\Ran>scrapy startproject python123demo
New Scrapy project 'python123demo', using template directory 'd:\anaconda
\lib\site-packages\scrapy\templates\project', created in:
    C:\Users\Ran\python123demo

You can start your first spider with:
    cd python123demo
    scrapy genspider example example.com

2. 在工程中产生一个scrapy爬虫

(base) C:\Users\Ran>cd python123demo

(base) C:\Users\Ran\python123demo>scrapy genspider demo python123.io
Created spider 'demo' using template 'basic' in module:
  python123demo.spiders.demo

3. 配置产生的spider

修改新创建的文件夹(地址如第一步命令行所示)下的spider文件夹下的 新的p文件(py文件名如第二部第二行所示(genspider的下一个单词))。代码如下:

# -*- coding: utf-8 -*-
import scrapy

class DemoSpider(scrapy.Spider):
    name = "demo"
    #allowed_domains = ['python123.io']
    start_urls = ['http://python123.io/wa/demo.html']

    def parse(self, response):
        fname = response.url.split('/')[-1]
        with open(fname,'wb') as f:
            f.write(response.body)
        self.log('Saved file %s.' % fname)

4. 运行爬虫以获取页面

(base) C:\Users\Ran\python123demo>scrapy crawl demo

运行后可以看到,在‘python123demo’目录下生成了 demo.html 文件