• (一)scrapy 安装及新建爬虫项目并运行


     > 参考:https://www.cnblogs.com/hy123456/p/9847570.html

    pycharm 中并没有创建 scrapy 工程的选项,需要手动创建。

    这里就有两种创建 scrapy 项目的方式,第一种是先手工创建 scrapy 项目,然后导入到 pycharm 中;第二种是直接在 pycharm 中利用其中的命令行窗口创建项目(我使用的是这种,比较方便);

    1. 手工创建导入方式

    1. 创建一个用于当前项目的虚拟空间:

      virtualenv --no-site-packages ScrapyLearning
    2. 启动当前虚拟空间:

      # 进入当前虚拟空间的相关目录下,windows下在:ScrapyLearning/Scripts/
      activate    # 激活当前虚拟空间
    3. 安装 scrapy

      pip install -i https://pypi.douban.com/simple/ scrapy   # 使用豆瓣源
    4. 使用 scrapy 创建 scrapy 项目:(千万注意不要直接在 script 目录下新建项目)

      scrapy startproject ArticleSpider   # ArticleSpider为项目名
    5. ArticleSpider 项目导入 pycharm

     

    2. pycharm 中创建

    1. pycharm 中新建工程,并选择创建一个用于当前项目的虚拟空间;

    2. pycharm 的下端的 Terminal 中输入以下命令以安装 scrapy (如果没有的话):

      pip install -i https://pypi.douban.com/simple/ scrapy   # 使用豆瓣源
    3. pycharm 的下端的 Terminal 中输入:

      scrapy startproject ArticlePaqu

      便会在当前项目目录下生成 ArticlePaqu 文件夹,这个便是 scrapy 项目文件夹。

     

    3.创建一个小爬虫

    创建一个单个小爬虫,爬取 scrapy 官方指定的一个示例页面:example.com

    命令行或 pycharmTermina 窗口中输入(这里需要进入前面新建的项目目录下):

    scrapy genspider example 'www.example.com'

    便会在 spider 文件夹下创建一个爬虫 python 文件,并自动写入初始代码:

    # -*- coding: utf-8 -*-
    import scrapy
    ​
    class ExampleSpider(scrapy.Spider):
        name = 'example'
        allowed_domains = ['example.com']
        start_urls = ['http://example.com/']
    ​
        def parse(self, response):
            pass

     

    4.运行爬虫

    4-1.命令行或 pycharmTerminal 中输入:

    scrapy crawl example

    即可启动 example 爬虫。

    4-2.直接通过运行 pycharmpython 文件的方式运行:

    需要在 scrapy 项目的根目录下创建一个 main.py 文件:

    from scrapy.cmdline import execute
    ​
    import sys
    import os   # 用来获取路径的模块
    ​
    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
    execute(['scrapy', 'crawl', 'example'])

    即相当于将

    scrapy crawl example

    命令分成三段组成 list 放入 python 执行程序中的 execute 函数中了。

    然后就可以通过右键 run main.py 函数即可运行 example 爬虫。

  • 相关阅读:
    ASP.NET 2.0 中的主版頁面 Master Pages
    初探ERP的数据库框架
    node.js 入门,
    mysql 测试
    zendframework 内置view
    session.save_Handler
    读mysql技术内幕 InnoDB 第三章
    php 的命名空间 看鸟哥后的随笔
    mysql innodb技术内幕 ~读 1,2,3 复习
    php 无乱码截取中文
  • 原文地址:https://www.cnblogs.com/zishu/p/11543557.html
Copyright © 2020-2023  润新知