scrapy爬虫系列之开头--scrapy知识点
介绍:Scrapy是一个为了爬取网站数据、提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速抓取。
Scrapy使用了Twisted异步网络框架,可以加快我们的下载速度。
0、说明:
保存数据的方法有4种(json、jsonl、csv、xml),-o 输出指定格式的文件
scrapy crawl 爬虫名称 -o aa.json
在编写Spider时,如果返回的不是item对象,可以通过scrapy crawl 爬虫名称 -o aa.json 爬取数据输出到本地,保存为aa.json文件
1、使用步骤
1.1 新建项目:scrapy startproject xxx
1.2 生成爬虫:scrapy genspider aaa "http://www.aaa.com"
1.3 明确目标:编写items.py,明确要提取的数据
1.4 编写爬虫:spiders/xx.py,编写爬虫文件,处理请求和响应,以及提取数据(yield item)
1.5 存储内容:pipelines.py,编写管道文件,处理spider返回的item数据
1.6 设置配置:settings.py, 启动管道组件,以及其他相关配置
1.7 执行爬虫:scrapy aaa 爬虫名称
2、安装:
pip3 install scrapy
3、命令
scrapy bench 测试
scrapy fetch "http://www.baidu.com" 爬取页面
scrapy genspider 爬虫名称 'http://www.baidu.com' 生成一个爬虫
scrapy runspider 运行一个爬虫
scrapy shell "url地址" 发送完请求后,用shell交互读取响应内容
response.body 响应体,response.body.decode()
response.headers 报头
response.selector Selector对象,此时可以通过response.selector.xpat() 或response.selector.css()来对response进行查询,或者把中间的selector省略也可以使用(新版)
Selector选择器,有4个基本的方法,最常用xpath
xpath(),传入xpath表达式,返回该表达式所对应的所有结点的selector list列表,使用方式:response.xpath("表达式")
extract(),序列化该结点为Unicode字符串并返回列表
css(),插入css表达式,返回该表达式所对应的所有结点的selector list列表,语法同 bs4
re(),根据传入的正则表达式进行提取,返回Unicode字符串列表
scrapy startproject 创建项目
scrapy list 查看项目下有多少个爬虫
4、其他
CrawlSpider
5、使用pipeline
可以有多个,为什么要有多个?
不同的pipeline处理不同的item的内容
一个spider的内容可能要做不同的操作,比如存入不同的数据库中
5.1 一个爬虫项目,包含多个爬虫,爬取多个网站,可以建多个Spider
5.2 当有多个爬虫,一个pipeline时,如何操作不同的数据呢?
可以在爬虫返回item时,加:item["come_from"] = '网站1',然后在pipeline的process_item方法里进行判断:if item["come_from"] == '网站1': do something
或者,根据spider.name来进行判断是哪个spider返回的数据
6、日志logging
普通用法:
import logging
logging.warning()
scrapy中的用法:
settings里配置日志级别:LOG_LEVEL = "WARNING"
settings里配置日志存放位置:LOG_FILE = './log.log' 当前目录
普通py项目的日志用法
import logging
logging.basicConfig(filename='example.log',level=logging.DEBUG) #还有很多参数可以设置
logger = logging.getLogger(__name__)
logger.warning("ssssssssss")
scrapy爬虫系列之开头--scrapy知识点的更多相关文章
- [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍
前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...
- 爬虫系列2:scrapy项目入门案例分析
本文从一个基础案例入手,较为详细的分析了scrapy项目的建设过程(在官方文档的基础上做了调整).主要内容如下: 0.准备工作 1.scrapy项目结构 2.编写spider 3.编写item.py ...
- scrapy爬虫系列之七--scrapy_redis的使用
功能点:如何发送携带cookie访问登录后的页面,如何发送post请求登录 简单介绍: 安装:pip3 install scrapy_redis 在scrapy的基础上实现了更多的功能:如reques ...
- scrapy爬虫系列之六--模拟登录
功能点:如何发送携带cookie访问登录后的页面,如何发送post请求登录 爬取网站:bilibili.github 完整代码:https://files.cnblogs.com/files/book ...
- scrapy爬虫系列之五--CrawlSpider的使用
功能点:CrawlSpider的基本使用 爬取网站:保监会 主要代码: cf.py # -*- coding: utf-8 -*- import scrapy from scrapy.linkextr ...
- scrapy框架系列 (1) 初识scrapy
Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页 ...
- 爬虫系列4:scrapy技术进阶之多页面爬取
多页面爬取有两种形式. 1)从某一个或者多个主页中获取多个子页面的url列表,parse()函数依次爬取列表中的各个子页面. 2)从递归爬取,这个相对简单.在scrapy中只要定义好初始页面以及爬虫规 ...
- 爬虫系列3:scrapy技术进阶(xpath、rules、shell等)
本文主要介绍与scrapy应用紧密相关的关键技术,不求很深入,但求能够提取要点.内容包括: 1.xpath选择器:选择页面中想要的内容 2.rules规则:定义爬虫要爬取的域 3.scrapy she ...
- scrapy爬虫系列之一--scrapy的基本用法
功能点:scrapy基本使用 爬取网站:传智播客老师 完整代码:https://files.cnblogs.com/files/bookwed/first.zip 主要代码: ff.py # -*- ...
随机推荐
- 转载:Erlang 函数(Efficiency Guide)
转自:http://www.cnblogs.com/futuredo/archive/2012/10/26/2737644.html Functions 1 Pattern matching 模式匹 ...
- Ironic , Openstack Baremetal Hypervisor
Ironic , Openstack Baremetal Hypervisor,首发于UnitedStack Inc.. 转自: http://ju.outofmemory.cn/entry/4876 ...
- 动态调用WCF不添加服务(svcutil.exe)
记录下 首先用svcutil.exe把指定wcf接口的信息下载下来. 生成代理类 比如说接口地址为 http://localhost:6666/Service1.svc 以管理员身份打开cmd 执形 ...
- Golang 语言安装
Ubuntu: 从源代码编译安装 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的 apt-get install bison gawk gcc libc6-d ...
- 如何快捷地使用ChemBio 3D检查结构信息
ChemBio 3D是一款三维分子结构演示软件,能够轻松快捷地进行化学结构的制作和立体旋转.ChemBio 3D Ultra 14作为ChemBio 3D的最新版本可以更加快捷地制作化学结构.本教程将 ...
- Visual Studio 2013 离线版msdn下载和安装
Visual Studio 2013出来后,并没有自带msdn安装包,而变成了在线安装msdn,好处是msdn可以随时进行更新,坏处是难道以后每次重新安装系统,都需要重新下载吗,如何解决这个问题呢?本 ...
- Vs2010创建WebService
在Visual Studio 2010中已经找不到直接创建WebService的模板方式了,但下面的方法可心实现: 在 Visual Studio 2010 的新建 Web 应用程序或者 Web 网站 ...
- YARN应用程序开发和设计流程
从业务的角度看,一个应用需要分两部分进行开发,一个是接入YARN平台,实现3个协议,通过YARN实现对集群资源的访问和利用:另一个是业务功能的实现,这个与YARN本身没有太大关系.下面主要阐述如何将一 ...
- HDFS原理解析(总体架构,读写操作流程)
前言 HDFS 是一个能够面向大规模数据使用的,可进行扩展的文件存储与传递系统.是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和 存储空间.让实际上是通过网络来访问文件 ...
- ASP代码审计学习笔记 -3.上传漏洞
1.ASP上传过程抓包分析: POST /4.asp HTTP/1.1 Host: 192.168.1.102 User-Agent: Mozilla/5.0 (Windows NT 10.0; WO ...