Python爬虫实战4,爬虫学习笔记

1. Scrapy框架

  Scrapy是python降低成爬虫成效的框架,能够将数据解析、数据管理、数据存款和储蓄合为一体功用的爬虫框架。

Python使用Scrapy框架爬取数据存入CSV文件(Python爬虫实战四),scrapycsv

那是自家要辛亏上学python
3爬虫时的小笔记,做备忘用,难免会有一些张冠李戴和疏漏,望指正~~~
Python 3 爬虫学习笔记 (一)
Python 3 爬虫学习笔记 (二)
Python 三 爬虫学习笔记 (三)
Python 三 爬虫学习笔记 (4)
Python 三 爬虫学习笔记 (6)

前言

亚洲必赢官网 1

image.png

自身建议菜鸟都从Python三伊始读书,能够不去读书Python贰了,毕竟今后断定会被Python3替代,当然,也有一些库它未来只包容Python二,那我们就再思虑了,作者的Python版本是Python三.5.二

推荐介绍1个基础教程,廖雪峰先生的Python入门教程

2. Scrapy安装

1. Scrapy框架

  Scrapy是python下完成爬虫功效的框架,能够将数据解析、数据管理、数据存款和储蓄合为一体功效的爬虫框架。


安装Scrapy

先要明确本身的Python版本 配置好情形变量,在cmd中输入python命令

亚洲必赢官网 2

image.png

还要也须求配置好pip命令

亚洲必赢官网 3

image.png

Scrapy框架是基于twisted的异步框架结构的,所以大家设置Twisted
下载对应版本的.whl文件先安装twisted库,当然你也急需选择符合本身的本子下载
下载地址:
http://www.lfd.uci.edu/~gohlke/pythonlibs/\#twisted

亚洲必赢官网 4

image.png

1. 安装信赖包

yum install gcc libffi-devel python-devel openssl-devel -y
yum install libxslt-devel -y

2. Scrapy安装

六、Scrapy初体验

Python爬虫实战4,爬虫学习笔记。前边大致学习了下通过urllib和Beautiful Soup
举行简单多少爬取的流程,不过那只适用于部分简练的、数据量一点都不大的爬虫项目,假如急需爬取的数据量十分大的话,以前的不二秘诀自然格外缓慢,所以就有了Scrapy,Scrapy是2个快速的web抓取框架,可抓取web站点并从页面中领到结构化的多少。Scrapy给我们提供了成都百货上千的爬虫基类,大家得以直接接轨使用,当然,既然Scrapy是三个框架,大家也足以依靠自身的内需对它举行修改,下边大家就慢慢来看Scrapy的选用。

Scrapy is an application framework for crawling web sites and
extracting structured data which can be used for a wide range of
useful applications, like data mining, information processing or
historical archival.
Even though Scrapy was originally designed for web scraping, it can
also be used to extract data using APIs (such as Amazon Associates Web
Services ) or as a general purpose web crawler.

安装twisted

展开命令提醒符窗口,输入指令:pip install (下载好的twisted模块的whl文件路径)

 2. 安装scrapy

pip install scrapy
pip install twisted==13.1.0

 注意事项:scrapy和twisted存在包容性难题,倘使设置twisted版本过高,运维scrapy
startproject project_name的时候会提醒报错,安装twisted==一3.一.0就可以。

1. 设置正视包

yum install gcc libffi-devel python-devel openssl-devel -y
yum install libxslt-devel -y

(一)安装(Windows)

Scrapy是纯Python编写的,所以须要一些相比根本的的Python重视包:

  • lxml, an efficient XML
    and HTML parser
  • parsel,
    an HTML/XML data extraction library written on top of lxml,
  • w3lib,
    a multi-purpose helper for dealing with URLs and web page encodings
  • twisted, an
    asynchronous networking framework
  • cryptography
    and
    pyOpenSSL,
    to deal with various network-level security needs

瞅注重视包相比较多,其实安装起来并不复杂,以管理员的地方运维Windows命令提醒符,在以安装Python的前提下,运维:

pip install scrapy

pip会自动下载相关重视包,假使顺遂的话,会直接设置达成。

要留心的是,确认一下python的本子,pip会依据系统自动安装相关包,即若是系统是60人的,pip就会设置陆十个人的包,不过twisted的版本一定要和python的等同,假诺操作系统是6十几位的,python是33个人的,pip直接设置的twisted安装就会出错。

一旦pip安装twisted时出错,在命令行输入python,查看本地python版本,然后到这里下载和python版本一样的whl文件,使用pip
install xxx.whl
设置,完毕后再施行1回pip install scrapy即可。

在命令行输入scrapy, 若不报错,则设置完结。

安装scrapy

twisted库安装成功后,就足以设置scrapy了,在命令提示符窗口直接输入指令:
pip install scrapy回车

安装关联模块pypiwin3二,在命令提示符窗口间接输入指令:
pip install pypiwin32 回车

3. 基于Scrapy爬取数据并存入到CSV

叁.一.
爬虫目的,获取简书中热点专题的数码新闻,站点为

亚洲必赢官网 5

 2. 安装scrapy

pip install scrapy
pip install twisted==13.1.0

 注意事项:scrapy和twisted存在包容性问题,假若设置twisted版本过高,运转scrapy
startproject project_name的时候会唤起报错,安装twisted==一叁.一.0就能够。

(二) 第一个Scrapy项目

照例,先上官方文档
1.3,找了弹指间网络翻译的文书档案都以0.二四要么0.2四版,所以提议我们如故看官方最新的英文版比较好。

开发命令提示符,进入想要成立项目的目录,运转

scrapy startproject scrapyTest

Paste_Image.png

体系开创实现,让大家来看一下类型协会,实践:

tree /f

Paste_Image.png

└─scrapyTest
    │  scrapy.cfg           # 配置文件(deploy configuration file)
    │
    └─scrapyTest
        │  items.py         # 项目中的item文件(project items definition file)
        │  middlewares.py   # 中间件
        │  pipelines.py     # 项目中的管道文件(project pipelines file)
        │  settings.py      # 项目中的设置文件(project settings file)
        │  __init__.py
        │
        ├─spiders           # 存放爬虫的文件夹(a directory where you'll later put your spiders)
        │  │  __init__.py
        │  │
        │  └─__pycache__
        └─__pycache__

进入spiders目录,新建test_spider.py如下:

# -*- coding:utf-8 -*-

import scrapy
from bs4 import BeautifulSoup


class tsSpride(scrapy.Spider):
    name = 'test' # 爬虫的唯一名字,在项目中爬虫名字一定不能重复

    # start_requests() 必须返回一个迭代的Request
    def start_requests(self):
        # 待爬取的URL列表
        urls = ['http://www.jianshu.com/',]
        # 模拟浏览器
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
        for url in urls:
            yield scrapy.Request(url=url, headers=headers, callback=self.parse)

    # 处理每个请求的下载响应
    def parse(self, response):
        soup = BeautifulSoup(response.body, 'html.parser')
        titles = soup.find_all('a', 'title')
        for title in titles:
            print(title.string)

在命令行输入

scrapy crawl test

结果如下:

Paste_Image.png

上述代码Scrapy为start_requests
中的各样U奥迪Q叁L成立了scrapy.Request对象,并将 parse()
方法作为回调函数(callback)赋值给了Request(Scray中parse()为暗中认可回调方法)。

The parse()
method will be called to handle each of the requests for those URLs,
even though we haven’t explicitly told Scrapy to do so. This happens
because parse()
is Scrapy’s default callback method, which is called for requests
without an explicitly assigned callback.

地点代码中用了Beautiful
Soup来管理爬下来的数额,而Scrapy也有Selector来拍卖数据,明天先到此处,下次再用三个实际的小项目来更详细地介绍Scrapy。

Scrapy测试,生成多个Scrapy框架

创办项目

运营命令:

scrapy startproject p1(your_project_name)

电动创建目录的结果:

亚洲必赢官网 6

image.png

文件评释:

  • scrapy.cfg
    项目的布局新闻,首要为Scrapy命令行工具提供2个基础的安顿音信。(真正爬虫相关的配置消息在settings.py文件中)

  • items.py 设置数据存款和储蓄模板,用于结构化数据,如:Django的Model

  • pipelines 数据管理作为,如:一般结构化的数据持久化

  • settings.py 配置文件,如:递归的层数、并发数,延迟下载等

  • spiders 爬虫目录,如:成立文件,编写爬虫规则

在意:一般创立爬虫文件时,以网址域名命名

3.二. 爬取内容

  供给爬取专题的始末包含:专题内容、专题描述、收音和录音作品数、关切人口,Scrapy使用xpath来清洗所需的数额,编写爬虫进度中得以手动通过lxml中的xpath获取数据,确认准确后再将其写入到scrapy代码中,分化点在于,scrapy须要使用extract()函数手艺将数据提抽取来。

三. 基于Scrapy爬取数据并存入到CSV

三.一.
爬虫目的,获取简书中热门专题的数据音信,站点为

亚洲必赢官网 7

scrapy终端常用命令

三.3 创制爬虫项目

[root@HappyLau jianshu_hot_topic]# scrapy startproject jianshu_hot_topic

#项目目录结构如下:
[root@HappyLau python]# tree jianshu_hot_topic
jianshu_hot_topic
├── jianshu_hot_topic
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── items.py
│   ├── items.pyc
│   ├── middlewares.py
│   ├── pipelines.py
│   ├── pipelines.pyc
│   ├── settings.py
│   ├── settings.pyc
│   └── spiders
│       ├── collection.py
│       ├── collection.pyc
│       ├── __init__.py
│       ├── __init__.pyc
│       ├── jianshu_hot_topic_spider.py    #手动创建文件,用于爬虫数据提取
│       └── jianshu_hot_topic_spider.pyc
└── scrapy.cfg

2 directories, 16 files
[root@HappyLau python]# 

三.二. 爬取内容

  要求爬取专题的内容包括:专题内容、专题描述、收录小说数、关注人数,Scrapy使用xpath来清洗所需的多寡,编写爬虫进程中得以手动通过lxml中的xpath获取数据,确认准确后再将其写入到scrapy代码中,分歧点在于,scrapy供给使用extract()函数才能将数据提抽取来。

可用scrapy命令

在终点中输入以下命令,查看scrapy有哪些命令语法

scrapy -h

亚洲必赢官网 8

image.png

scrapy的命令有两种分类-全局命令与品类命令

诸如我们在命令行直接输入scrapy startproject myproject其一命令,实际上是在全局情形中利用的。

而当我们运行爬虫时候输入scrapy crawl myspider时,实际上是在档期的顺序条件内运维的。

#全局变量
startproject
runspider
shell
fetch



#项目命令
crawl
parse
genspider

 三.4 代码内容

1. items.py代码内容,定义需要爬取数据字段
# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy
from scrapy import Item
from scrapy import Field

class JianshuHotTopicItem(scrapy.Item):
 '''
 @scrapy.item,继承父类scrapy.Item的属性和方法,该类用于定义需要爬取数据的子段
 '''
 collection_name = Field()
 collection_description = Field()
 collection_article_count = Field()
 collection_attention_count = Field()

2. piders/jianshu_hot_topic_spider.py代码内容,实现数据获取的代码逻辑,通过xpath实现
[root@HappyLau jianshu_hot_topic]# cat spiders/jianshu_hot_topic_spider.py
#_*_ coding:utf8 _*_

import random
from time import sleep
from scrapy.spiders import CrawlSpider
from scrapy.selector import Selector
from scrapy.http import Request
from jianshu_hot_topic.items import JianshuHotTopicItem 

class jianshu_hot_topic(CrawlSpider):
 '''
 简书专题数据爬取,获取url地址中特定的子段信息
 '''
 name = "jianshu_hot_topic"
 start_urls = ["https://www.jianshu.com/recommendations/collections?page=2&order_by=hot"]

 def parse(self,response):
  '''
  @params:response,提取response中特定字段信息
  '''
  item = JianshuHotTopicItem()
  selector = Selector(response)
  collections = selector.xpath('//div[@class="col-xs-8"]') 
  for collection in collections:
   collection_name = collection.xpath('div/a/h4/text()').extract()[0].strip()
                 collection_description = collection.xpath('div/a/p/text()').extract()[0].strip()
                 collection_article_count = collection.xpath('div/div/a/text()').extract()[0].strip().replace('篇文章','')
                 collection_attention_count = collection.xpath('div/div/text()').extract()[0].strip().replace("人关注",'').replace("· ",'') 
   item['collection_name'] = collection_name
   item['collection_description'] = collection_description
   item['collection_article_count'] = collection_article_count 
   item['collection_attention_count'] = collection_attention_count

   yield item


  urls = ['https://www.jianshu.com/recommendations/collections?page={}&order_by=hot'.format(str(i)) for i in range(3,11)]
  for url in urls:
   sleep(random.randint(2,7))
   yield Request(url,callback=self.parse)

3. pipelines文件内容,定义数据存储的方式,此处定义数据存储的逻辑,可以将数据存储载MySQL数据库,MongoDB数据库,文件,CSV,Excel等存储介质中,如下以存储载CSV为例:
[root@HappyLau jianshu_hot_topic]# cat pipelines.py
# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html


import csv 

class JianshuHotTopicPipeline(object):
    def process_item(self, item, spider):
     f = file('/root/zhuanti.csv','a+')
 writer = csv.writer(f)
 writer.writerow((item['collection_name'],item['collection_description'],item['collection_article_count'],item['collection_attention_count']))
        return item

4. 修改settings文件,
ITEM_PIPELINES = { 
    'jianshu_hot_topic.pipelines.JianshuHotTopicPipeline': 300,
}

亚洲必赢官网 ,三.三 创设爬虫项目

[[email protected] jianshu_hot_topic]# scrapy startproject jianshu_hot_topic

#项目目录结构如下:
[[email protected] python]# tree jianshu_hot_topic
jianshu_hot_topic
├── jianshu_hot_topic
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── items.py
│   ├── items.pyc
│   ├── middlewares.py
│   ├── pipelines.py
│   ├── pipelines.pyc
│   ├── settings.py
│   ├── settings.pyc
│   └── spiders
│       ├── collection.py
│       ├── collection.pyc
│       ├── __init__.py
│       ├── __init__.pyc
│       ├── jianshu_hot_topic_spider.py    #手动创建文件,用于爬虫数据提取
│       └── jianshu_hot_topic_spider.pyc
└── scrapy.cfg

2 directories, 16 files
[[email protected] python]# 

创立项目

全局命令。使用scrapy第三步是在指令行中,创设爬虫项目。

语法: scrapy startproject <projectname>

在 当前目录下创办多少个名叫 projectname 的Scrapy项目。

scrapy startproject myproject

目录结构如下

scrapy.cfg
projectname/
    __init__.py
    items.py
    pipelines.py
    settings.py
    spiders/
        __init__.py
        myspider.py

制造好项目后,将当前工作目录切换成项目目录中。使用

cd myproject

以往就能够利用scrapy的种类命令操作scrapy项目了。

 3.5 运行scrapy爬虫

  重返到项目scrapy项目开创所在目录,运维scrapy crawl
spider_name即可,如下:

[root@HappyLau jianshu_hot_topic]# pwd
/root/python/jianshu_hot_topic
[root@HappyLau jianshu_hot_topic]# scrapy crawl jianshu_hot_topic
2018-02-24 19:12:23 [scrapy.utils.log] INFO: Scrapy 1.5.0 started (bot: jianshu_hot_topic)
2018-02-24 19:12:23 [scrapy.utils.log] INFO: Versions: lxml 3.2.1.0, libxml2 2.9.1, cssselect 1.0.3, parsel 1.4.0, w3lib 1.19.0, Twisted 13.1.0, Python 2.7.5 (default, Aug  4 2017, 00:39:18) - [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)], pyOpenSSL 0.13.1 (OpenSSL 1.0.1e-fips 11 Feb 2013), cryptography 1.7.2, Platform Linux-3.10.0-693.el7.x86_64-x86_64-with-centos-7.4.1708-Core
2018-02-24 19:12:23 [scrapy.crawler] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'jianshu_hot_topic.spiders', 'SPIDER_MODULES': ['jianshu_hot_topic.spiders'], 'ROBOTSTXT_OBEY': True, 'USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0', 'BOT_NAME': 'jianshu_hot_topic'}

 查看/root/zhuanti.csv中的数据,就可以完成。

 

 三.四 代码内容

1. items.py代码内容,定义需要爬取数据字段
# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy
from scrapy import Item
from scrapy import Field

class JianshuHotTopicItem(scrapy.Item):
 '''
 @scrapy.item,继承父类scrapy.Item的属性和方法,该类用于定义需要爬取数据的子段
 '''
 collection_name = Field()
 collection_description = Field()
 collection_article_count = Field()
 collection_attention_count = Field()

2. piders/jianshu_hot_topic_spider.py代码内容,实现数据获取的代码逻辑,通过xpath实现
[[email protected] jianshu_hot_topic]# cat spiders/jianshu_hot_topic_spider.py
#_*_ coding:utf8 _*_

import random
from time import sleep
from scrapy.spiders import CrawlSpider
from scrapy.selector import Selector
from scrapy.http import Request
from jianshu_hot_topic.items import JianshuHotTopicItem 

class jianshu_hot_topic(CrawlSpider):
 '''
 简书专题数据爬取,获取url地址中特定的子段信息
 '''
 name = "jianshu_hot_topic"
 start_urls = ["https://www.jianshu.com/recommendations/collections?page=2&order_by=hot"]

 def parse(self,response):
  '''
  @params:response,提取response中特定字段信息
  '''
  item = JianshuHotTopicItem()
  selector = Selector(response)
  collections = selector.xpath('//div[@class="col-xs-8"]') 
  for collection in collections:
   collection_name = collection.xpath('div/a/h4/text()').extract()[0].strip()
                 collection_description = collection.xpath('div/a/p/text()').extract()[0].strip()
                 collection_article_count = collection.xpath('div/div/a/text()').extract()[0].strip().replace('篇文章','')
                 collection_attention_count = collection.xpath('div/div/text()').extract()[0].strip().replace("人关注",'').replace("· ",'') 
   item['collection_name'] = collection_name
   item['collection_description'] = collection_description
   item['collection_article_count'] = collection_article_count 
   item['collection_attention_count'] = collection_attention_count

   yield item


  urls = ['https://www.jianshu.com/recommendations/collections?page={}&order_by=hot'.format(str(i)) for i in range(3,11)]
  for url in urls:
   sleep(random.randint(2,7))
   yield Request(url,callback=self.parse)

3. pipelines文件内容,定义数据存储的方式,此处定义数据存储的逻辑,可以将数据存储载MySQL数据库,MongoDB数据库,文件,CSV,Excel等存储介质中,如下以存储载CSV为例:
[[email protected] jianshu_hot_topic]# cat pipelines.py
# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html


import csv 

class JianshuHotTopicPipeline(object):
    def process_item(self, item, spider):
     f = file('/root/zhuanti.csv','a+')
 writer = csv.writer(f)
 writer.writerow((item['collection_name'],item['collection_description'],item['collection_article_count'],item['collection_attention_count']))
        return item

4. 修改settings文件,
ITEM_PIPELINES = { 
    'jianshu_hot_topic.pipelines.JianshuHotTopicPipeline': 300,
}

生成spider

品种命令。创设spider。一般成立的spider名字是跟域名一样的,比方www.baidu.com,大家穿件的爬虫命令

scrapy genspider baidu baidu.com

貌似原理如下

scrapy genspider spidername domain.com

肆. 超出的难题计算

  1. twisted版本不见容,安装过新的版本导致,安装Twisted (一叁.1.0)就能够

2.
华语数据不能写入,提醒’ascii’错误,通过安装python的encoding为utf就可以,如下:

>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> reload(sys)
<module 'sys' (built-in)>
>>> sys.setdefaultencoding('utf8')
>>> sys.getdefaultencoding()
'utf8'

 三.
爬虫不能够拿到站点数据,由于headers导致,载settings.py文件中增添USELacrosse_AGENT变量,如:

USER_AGENT="Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"

 Scrapy使用进程中或许会遇见结果实行破产或许结果实行不切合预期,其实际的logs卓殊详细,通过观望日志内容,并结合代码+网络寻觅资料就可以化解。

 3.5 运行scrapy爬虫

  重回到项目scrapy项目开创所在目录,运维scrapy crawl
spider_name即可,如下:

[[email protected] jianshu_hot_topic]# pwd
/root/python/jianshu_hot_topic
[[email protected] jianshu_hot_topic]# scrapy crawl jianshu_hot_topic
2018-02-24 19:12:23 [scrapy.utils.log] INFO: Scrapy 1.5.0 started (bot: jianshu_hot_topic)
2018-02-24 19:12:23 [scrapy.utils.log] INFO: Versions: lxml 3.2.1.0, libxml2 2.9.1, cssselect 1.0.3, parsel 1.4.0, w3lib 1.19.0, Twisted 13.1.0, Python 2.7.5 (default, Aug  4 2017, 00:39:18) - [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)], pyOpenSSL 0.13.1 (OpenSSL 1.0.1e-fips 11 Feb 2013), cryptography 1.7.2, Platform Linux-3.10.0-693.el7.x86_64-x86_64-with-centos-7.4.1708-Core
2018-02-24 19:12:23 [scrapy.crawler] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'jianshu_hot_topic.spiders', 'SPIDER_MODULES': ['jianshu_hot_topic.spiders'], 'ROBOTSTXT_OBEY': True, 'USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0', 'BOT_NAME': 'jianshu_hot_topic'}

 查看/root/zhuanti.csv中的数据,就可以完成。

 

爬取

类型命令。 语法:scrapy crawl <spider>

四. 相逢的标题总括

  1. twisted版本不见容,安装过新的本子导致,安装Twisted (一三.壹.0)就能够

贰.
国语数据不能够写入,提醒’ascii’错误,通过设置python的encoding为utf就可以,如下:

>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> reload(sys)
<module 'sys' (built-in)>
>>> sys.setdefaultencoding('utf8')
>>> sys.getdefaultencoding()
'utf8'

 三.
爬虫不大概获得站点数据,由于headers导致,载settings.py文件中增加USELacrosse_AGENT变量,如:

USER_AGENT="Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"

 Scrapy使用进度中可能会碰到结果进行倒闭大概结果进行不适合预期,其现实的logs格外详尽,通过观看日志内容,并整合代码+网络检索资料就能够缓慢解决。

  1. Scrapy框架
    Scrapy是python下达成爬虫功能的框架,能够将数据解析、数据处…

fetch

大局命令。语法:scrapy fetch <url>

运用本语句下载钦赐的url,并将赢获得的内容重回为scrapy中的response对象。

scrapy fetch https://i.meituan.com

shell

全局命令。语法:scrapy shell [url]

Scrapy
shell是2个相互终端,供您在未运营spider的意况下品尝及调节和测试您的爬替代码,用来测试提取数据的代码。该终端是用来测试XPath或CSS表达式,查看他们的办事章程及从爬取的网页中领取的数据。
免去了每一次修改后运转spider的难为。

scrapy shell运转后,就会有以下目的,能够拓展有益的调理。

scrapy shell https://www.baidu.com/

parse

花色命令。语法: scrapy parse <url> [options]

得到给定的ULANDL并行使相应的spider分析管理。假诺你提供 –callback
选项,则运用spider的该措施管理,否则使用 parse。

--spider=SPIDER: 跳过自动检测spider并强制使用特定的spider
--a NAME=VALUE: 设置spider的参数(可能被重复)
--callback or -c: spider中用于解析返回(response)的回调函数
--pipelines: 在pipeline中处理item

runspider

大局命令语法:scrapy runspider

在未创设项目标动静下,运行多少个编纂在python脚本中的spider。

网站地图xml地图