#1.生成新的Scrapy工程:
生成新工程命令为:
scrapy startproject 工程名称
例如:在某目录下运行CMD或者终端
输入以下指令:
scrapy startproject scapyTest
若项目生成成功,则会返回类似如下的信息:
New Scrapy project 'scapyTest', using template directory 'd:\\develop\\python\\lib\\site-packages\\scrapy\\templates\\project', created in:
D:\PyProjects\scapyTest
You can start your first spider with:
cd scapyTest
scrapy genspider example example.com
生成的目录结构:
root@SISBIAN:/mnt/d/PyProjects/scapyTest# tree
.
├── scapyTest
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py # 项目默认中间件
│ ├── pipelines.py
│ ├── settings.py # 项目主要设置文件
│ └── spiders # 项目爬虫存放文件夹
│ └── __init__.py
└── scrapy.cfg
#2.生成爬虫
一个工程中可以存在多个爬虫.
生成爬虫的命令如下:
scrapy genspider 爬虫名称 要爬取的网站,当然也可以是个接口或者子页面
例如,在scapyTest目录下运行命令:
注意,请勿在输入网址时带有协议名称,例如:(https://)
scrapy genspider ipTest www.baidu.com/s?wd=ip
如果生成成功会得到如下提示:
Created spider 'ipTest' using template 'basic' in module:
scapyTest.spiders.ipTest
目录结构发生变化如下(手动忽略了.pyc文件,如果多出了.pyc是正常的):
root@SISBIAN:/mnt/d/PyProjects/scapyTest# tree
.
├── scapyTest
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── settings.py
│ └── spiders
│ ├── __init__.py
│ └── ipTest.py # 生成的新爬虫
└── scrapy.cfg
爬虫内容如下:
# -*- coding: utf-8 -*-
import scrapy
class IptestSpider(scrapy.Spider):
name = "ipTest" # 爬虫名称,在调用爬虫时以此为准
allowed_domains = ["www.baidu.com/s?wd=ip"]
start_urls = ['http://www.baidu.com/s?wd=ip/']
def parse(self, response):
pass
爬虫中的parse方法就是获得成功后调用的方法
我们将获取的内容打印出来(修改parse方法):
def parse(self, response):
self.log(response.body)
pass
#3.运行爬虫
爬虫运行命令如下:
scrapy crawl 爬虫名称
例如,在scpay目录下运行命令:
scrapy crawl ipTest