{1} 新建项目

  1. scrapy startproject projectName # projectName 为新建项目的名称

运行后会出现以下提示

  1. You can start your first spider with:
  2. cd one # cd 到指定文件夹即可
  3. scrapy genspider example example.com

{2} 新建爬虫项目

scrapy genspider genspiderName genspiderUrl 
"""
{1} genspiderName 为爬虫项目的名称
{2} genspiderUrl 为爬虫允许的域名
"""

运行后会出现类似于以下的提示

Created spider 'test' using template 'basic' in module: # test 当时你新建的项目的名称
  FirstDemo.spiders.test # 文件的目录地址 及 FirstDemo/spiders/test.py 文件

{3} 运行项目

我们对现在的项目加一些配置,如下所示

import scrapy


class BaiduSpider(scrapy.Spider):
    """
    :param name: 爬虫文件的名称,当前源文件的唯一标识
    :param allowed_domains: 允许的域名,可以不写,用于限定域名(start_urls 只能执行 allowed_domains 的域名下的url列表)
    :param start_urls: 启始的url列表,自动使用 get 方法进行数据请求
    :return
        {1} 运行命令 scrapy crawl baidu 后,默认会输出工程的日志信息
        {2} 也可以在后面跟一个参数nolog,即scrapy crawl spider_name --nolog
        {3} settings.py
            {3.1} ROBOTSTXT_OBEY = True 表示遵从 robots 协议,我们需要把 True 改成 False
            {3.2} USER_AGENT = your user agent 找一个 user agent 填写到此处
            {3.3} 可以指定类型日志的输出 LOG_LEVEL = "ERROR" 可以这样写,也可以使用 {2} 方法进行操作,本人推荐使用 {2},具体情况因需求而定
    """
    name = 'baidu'
    allowed_domains = ['www.baidu.com']
    start_urls = ['https://www.baidu.com/']

    def parse(self, response, **kwargs):
        """
        :param response:服务器返回的响应对象
        :param kwargs:
        :return:用于数据解析,用于解析 start_urls 下的 url 列表中的 urls
        """
        print(response)

我们运行下,我们在这里使用的是[^ scrapy crawl baidu --nolog ]命令

[^ scrapy crawl baidu --nolog ]: 其中的baidu 及为语法中的 spider_name,及爬虫文件的 name /唯一标识

{4} 运行结果

我这里的 start_urls 里面只有一条数据,故,只有一条返回信息。我的返回信息如下:

<200 http://www.baidu.com/>