Scrapy 常用的shell执行命令
1、在任意系统下,可以使用 pip 安装 Scrapy
- pip install scrapy/
- 确认安装成功
- >>> import scrapy
- >>> scrapy.version_info
- (, , )
- 可以看到 scrapy 的一些命令
$ scrapy
E:\data\job\job>scrapy
Scrapy 1.6.0 - project: job
Usage:
scrapy <command> [options] [args]
Available commands:
bench Run quick benchmark test
check Check spider contracts
crawl Run a spider
edit Edit spider
fetch Fetch a URL using the Scrapy downloader
genspider Generate new spider using pre-defined templates
list List available spiders
parse Parse URL (using its spider) and print the results
runspider Run a self-contained spider (without creating a project)
settings Get settings values
shell Interactive scraping console
startproject Create new project
version Print Scrapy version
view Open URL in browser, as seen by Scrapy
Use "scrapy <command> -h" to see more info about a command
通过上面的两项检测,说明 Scrapy 安装成功了
2、创建一个 Scrapy 项目
在shell中使用 scrapy startproject命令:
- scrapy startproject job
创建好的爬虫的项目目录文件如下所示
(通常我们不需要手工创建 Spider 文件以及 Spider 类,可以使用 scrapy genspider <SPIDER_NAME> <DOMAIN>命令生成(根锯模板)它们,该命令的两个参数分别是 Spider 的名字和多要爬取的预(网站))
- $ cd job
- $ scrapy genspider books books.toscrape.com
运行后,scrapy genspider 命令创建了文件 job/spider/books.py,并在其中创建了一个BooksSpider 类,代码如下:
- # -*-coding: utf- -*-
- import scrapy
- cclass BooksSpider(scrapy.Spider):
- name = 'books'
- allowed_domains = ['books.toscrape.com']
- start_urls = ['http://books.toscrapy.com/']
- def parse(self, response):
- pass
1、分析页面
(1)数据信息
(2)链接信息
2、实现Spider
实现爬虫的 Python 文件应位于 job/spiders 目录下,在该目录下新建文件 51job.py
(1)提取数据
(2)提取链接
3、对 Spider 的实现做简单的说明
(1) name 属性
一个 Scrapy 醒目中可能有多个爬虫,每个爬虫的 name 属性是其自身的唯一标示,在一个项目中不能有同名的爬虫,例如 取名为 “books”
(2)start_url 属性
一个爬虫总要从某个(或某些)页面开始爬取,我们成这样的页面为其实爬取点,start_url 属性用来设置一个爬虫的其实爬取点。比如:“http://books.toscraper.com”.
(3)parse 方法
当一个页面下载完毕之后,Scrapy 引擎会回调一个我们指定的页面解析函数(默认为 parse 方法)解析页面,一个页面解析韩式同常需要完成以下两个任务:
<1> 提取页面中的数据 (使用 XPath 或者 CSS 选择器)
<2> 提取页面中的链接,并产生对链接页面的下载请求。
页面解析函数通常被实现为一个生成器函数,每一项从页面中提取的数据以及每一个链接页面的下载请求都由 yield 语句提交给 Scraoy 引擎
运行爬虫
在 shell 中执行 scrapy crawl <Spider_Name> 命令运行爬虫'books',并将爬取的数据存储到 csv 文件中:
- scrapy crawl books -o books.csv
在进行页面分析时,除了之前使用过的 Chrome 开发者工具之外,另一种常用的工具是
- scrapy shell <URL>
他使用户可以再交互式命令下操作一个 Scrapy 爬虫,通常我们使用该工具进行前期爬取实验,从而提高开发效率
Scrapy 常用的shell执行命令的更多相关文章
- expect 交互 之shell执行命令操作
shell 执行命令操作 /usr/bin/expect -c " proc jiaohu {} { send_user expect_start expect { password { s ...
- 使用PsExec获取shell执行命令
PsExec PsExec是pstools工具组套件的一部分,确成为了渗透利器,下载地址:点击这里下载 连接shell 我的Windows Server 2012默认打开域网络防火墙的时候,是不能连接 ...
- linux shell 执行命令顺序
1.shell命令搜索顺序 在linux shell 中输入一个命令,如果有多个同名指令,shell需要按照一定规则去取优先级高的一个执行,shell命令的搜索顺序为: 1.别名,使用alias创建的 ...
- Bash shell执行命令的优先级
1.别名2.关键字:if.function.while .until等3.函数4.内置命令5.可执行程序或脚本 别关函内可 =-=-=-=-=Powered by Blogilo
- 在shell下执行命令的方法
在shell下执行命令的方法 1. #!/bin/sh 语法:在shell.sh的开头写入 #!/bin/sh 一般的shell脚本就是这种用法.这种方法调用脚本开头的shell执行命令,子shell ...
- Hbase启动hbase shell运行命令报Class path contains multiple SLF4J bindings.错误
1:Hbase启动hbase shell运行命令报Class path contains multiple SLF4J bindings.错误,是因为jar包冲突了,所以对于和hadoop的jar包冲 ...
- UNIX环境编程学习笔记(22)——进程管理之system 函数执行命令行字符串
lienhua342014-10-15 ISO C 定义了 system 函数,用于在程序中执行一个命令字符串.其声明如下, #include <stdlib.h> int system( ...
- 常用的shell命令整理
工作快一年了,shell命令也玩了一年了.还是有点积累的,下面是本人常用的. 1.pwd | xargs -i basename {} 获取当前所在目录的名称 2.ps -ef|grep -w ...
- 工作中常用的 Shell 命令及技巧
调试 bash 脚本的技巧 加 -x 参数运行 bash 脚本时,会显示执行的语句 # 也可以在 demo.sh 中加上 set -x bash -x demo.sh 设置环境变量,然后通过如上方式运 ...
随机推荐
- Android学习02
今天学了ScrollView&HorizontalScrollView和WebView 一.ScrollView(垂直滚动),HorizontalScrollView(水平滚动) Scroll ...
- 【MySQL】外键的变种
" 目录 三种关系 多对一 多对多 一对一 因为有foreign key的约束,使得两张表形成了三种关系: 多对一 多对多 一对多 重点理解如何找出两张表之间的关系 现在有A.B两张表 分析 ...
- SpringCloud全家桶学习之断路器---Hystrix(五)
目前我也在摸索着学习Spring Cloud,本节主要摸索的是服务熔断.服务降级.Hystrix服务监控. 一.Hystrix概述 (1)服务雪崩 服务雪崩:多个微服务之间调用的时候,假设微服务A调用 ...
- 第八届极客大挑战 Web-故道白云&Clound的错误
web-故道白云 题目: 解题思路: 0x01 首先看到题目说html里有秘密,就看了下源代码如图, 重点在红圈那里,表示输入的变量是id,当然上一行的method=“get”同时说明是get方式获取 ...
- 基于 VS2019 配置 opencv4.x
创建新项目 添加主函数文件 配置 注意,如果直接使用项目的属性去配置,那么创建新的项目的时候,还需要再配置一遍,在属性管理器里配置,创建新项目的时候,会自动应用 接下来,开始为软件配置目录和附加项.右 ...
- Django rest framework框架中有哪些组件
认证 权限(授权) 用户访问次数/频率限制 版本 解析器(parser) 序列化 分页 路由系统 视图 渲染器 认证 自定义认证的类 """ from rest_fram ...
- SpringBoot与Mybatis整合(包含generate自动生成代码工具,数据库表一对一,一对多,关联关系中间表的查询)
链接:https://blog.csdn.net/YonJarLuo/article/details/81187239 自动生成工具只是生成很单纯的表,复杂的一对多,多对多的情况则是在建表的时候就建立 ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 排序、条件刷选函数
numpy.sort() 函数返回输入数组的排序副本.函数格式如下: numpy.sort(a, axis, kind, order) 参数说明: a: 要排序的数组 axis: 沿着它排序数组的轴, ...
- 吴裕雄--天生自然TensorFlow2教程:链式法则
import tensorflow as tf x = tf.constant(1.) w1 = tf.constant(2.) b1 = tf.constant(1.) w2 = tf.consta ...
- 炼金术(2): 为什么要用issue管理软件
在项目开发中,存在的无数的任务分解,问题管理,流程跟踪.因为直接说话或者直接在IM里喊话是很容易的,所以在一个还没有习惯使用issue管理软件的团队中,直接说话或者直接在IM里AT,就在某些时候变成了 ...