暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

scrapy爬虫的常用命令

糟老头修炼记 2020-02-29
851

scrapy是为持续运行设计的专业爬虫框架,scrapy的很多操作都用命令行实现

1.scrapy -h

2.scrapy命令行格式:>scrapy <command> [options][args]

3.scrapy常用命令:

startproject---创建一个新工程---scrapy startproject <name> [dir]

genspider---创建一个爬虫---scrapy genspider [options] <name> <domains>

settings---获得爬虫配置---scrapy settings [options]

crawl---运行一个爬虫---scrapy crawl <spider>

list---列出工程中所有爬虫---scrapy list

shell---启动url调试命令行---scrapy shell [url]


在scrapy框架下,一个工程是一个最大的单元,一个工程相当于一个大的scrapy框架,在scrapy框架中可以有多个爬虫,每个爬虫相当于框架中的一个spider模块


scrapy为什么使用命令行而不是图形界面?

因为scrapy不是给用户操作使用的,它更多地是后台的一个爬虫框架,命令行更容易自动化,适合脚本控制,对爬虫的控制和访问还有数据的操作更加灵活,并且,在本质上scrapy是给程序员使用的,而不是给最终用户使用的,它的功能更重要


scrapy爬虫的使用:

步骤:

1.建立一个scrapy工程,选一个目录,在目录中执行建立爬虫工程的命令

命令:scrapy startproject python123demo

结果:生成工程目录:

python123demo/---外层目录

  (1)scrapy.cfg--部署scrapy爬虫的配置文件,将爬虫放到特定服务器,并为服务器配置好相关的接口

  (2)python123demo/---scrapy框架对应的所有文件所在的目录,其中彪包含很多Python文件

(2).1 __init__.py:初始化脚本,用户不需要编写

(2).2 items.py:对于items类的代码模块(继承scrapy提供的类),一般不需要用户编写

(2).3 middlewares.py:Pipelines代码模块

(2).4 settings.py:scrapy爬虫的配置文件(若要优化爬虫,则需要修改settings里对应的配置项)

(2).5 spiders/:存放Python123demo这个工程中所建立的爬虫,它内部的文件有:

<1>__init__.py:初始文件,无需修改

<2>__pycache__/:缓存目录,无需修改


2.在工程中创建一个scrapy爬虫(注意路径)

命令:scrapy genspider demo python123.io

结果:在外层目录python123demo里生成一个demo.py文件

文件中allowed_domains:最开始用户提交给命令行的域名,所以这个域名在爬取网站时只能爬取这个域名以下的相关连接

start_urls:以列表形式包含的一个或多个url,就是scrapy框架所要爬取的初始页面

def parse()函数:解析页面的函数,parse():用于处理响应,解析从网络中爬取的内容并且形成字典类型,并且还能从爬取的内容中发现新的url爬取请求


3.配置产生的spider爬虫,修改demo.py,使之满足需求

爬取方法的两个参数:self:面向对象类所属关系的标记,response:从网络中返回内容所对应的对象


4.运行爬虫,获取页面

命令:scrapy crawl demo

过程中涉及的三个类:

Requests:向网络上提交请求的内容

Response:从网络中爬取的内容的封装的类

Items类:由spider产生的信息封装的类


Requests类表示一个Request对象,Request对象表示一个HTTP请求,Requests类由spider生产,最终由DOWNLOADER执行

Response对象表示一个HTTP响应,封装在Response类里,由DOWNLOADER生产,由spider处理

Item对象表示一个从HTML页面中提取的信息内容,由spider生成,由Item Pipelines处理,Item类似字典类型,可以按照字典类型操作


Requests类的六个常用属性:

Response类的六个常用属性:

scrapy爬虫支持多种HTML信息提取方法:BeautifulSoup、lxml、re、XPath Selector、CSS Selector等


文章转载自糟老头修炼记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论