爬虫13:爬虫框架Scrapy

爬虫•目录 爬虫•类别


爬虫框架Scrapy

异步处理框架,可配置和可扩展程度非常高高,python中使用最广泛的爬虫框架
详细

Scrapy安装镜像(Anaconda Prompt安装命令)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
conda install Scrapy

Ubuntu安装
sudo apt_get install libssl-dev
sudo apt_get install libffi-dev
sudo apt_get install build-essential
sudo apt_get install python3-dev
sudo apt_get install liblxml2
sudo apt_get install liblxml2-dev
sudo apt_get install libxslt1-dev
sudo apt_get install zlib1g-dev
升级pyasn1
sido pip3 install pysan1==0.4.4
sudo pip3 install Scrapy

图片

项目步骤

  • 新建项目
    scrapy startproject 项目名
  • 明确目标
    items.py
  • 制作爬虫程序
    scrapy genspider 文件名 域名
  • 数据处理
    pipelines.py
  • 运行爬虫程序
    scrapy crawl 文件名

    选择在编辑器运行,创建.py文件,内容如下.直接运行该文件.
    from scrapy import cmdline
    cmdline.execute(‘scrapy crawl 文件名’.split())

例子:
终端命令
cd /jent/project/spider/spider_13
scrapy startproject Baidu
out:
New Scrapy project ‘Baidu’, using template directory ‘/usr/local/lib/python2.7/dist-packages/scrapy/templates/project’, created in:
/home/tarena/jent/project/spider/spider_13/Baidu

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

cd Baidu
scrapy genspider baidu www.baidu.com
out:
Created spider ‘baidu’ using template ‘basic’ in module:
Baidu.spiders.baidu

打开项目目录下的baidu下的settings.py文件
更改ROBOTSTXT_OBEY = False

如果你想爬的内容更广泛,那么不要去遵守协议.不过这并不是一个好的职业道德行为.

项目文件

  • 项目目录
    Baidu
    ├── Baidu            # 项目目录
    │ ├── __init__.py
    │ ├── __init__.pyc
    │ ├── items.py        # 定义数据结构
    │ ├── middlewares.py
    │ ├── pipelines.py # 管道文件
    │ ├── settings.py      # 定义全局配置
    │ ├── settings.pyc
    │ └── spiders
    │ ├── baidu.py     # 爬虫文件
    │ ├── __init__.py
    │ └── __init__.pyc
    └── scrapy.cfg

  • setting.py配置

    • 遵守ROBOX协议
      ROBOTSTXT_OBEY = False
    • 设置并发数量
      CONCURRENT_REQUESTS = 32
    • 下载延迟时间
      DOWNLOAD_DELAY = 1
    • 请求头
      DEFAULT_REQUEST_HEADERS = {}
    • 项目管道
      ITEM_PIPELINES = {‘Baidu.pipelines.BaiduPipeline’: 300,}

博主个人能力有限,错误在所难免.
如发现错误请不要吝啬,发邮件给博主更正内容,在此提前鸣谢.
Email: JentChang@163.com (来信请注明文章标题,如果附带链接就更方便了)
你也可以在下方的留言板留下你宝贵的意见.


上一篇
爬虫14:爬虫框架Scrapy02 爬虫14:爬虫框架Scrapy02
爬虫•目录 爬虫•类别 爬虫框架Scrapyyield 把1个函数当作1个生成器来使用 让函数暂停,等待下一次调用 记录执行的位置,每次开始都是从上次停止的地地方继续,不会从头开始. def fun_1(): print('
2019-01-22
下一篇
爬虫12:BeautifulSoup解析 爬虫12:BeautifulSoup解析
爬虫•目录 爬虫•类别 BeautifulSoup解析 依赖于lxmlAnaconda Prompt:conda install beautifulsoup4 使用 from bs4 import BeautifulSoup 导入模
2019-01-22
目录