Scrapy 貌似是 Python 最出名的爬虫框架

0. 文档##

中文文档:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html

官方文档:https://docs.scrapy.org/en/latest/

中文文档很旧了,建议直接看官方英文文档。

1. 安装##

pip install scrapy

还有什么不是这么装的吗。。

2. 新建项目##

scrapy startproject <projectname>

非常简单,进入你要放项目的目录,一行命令scrapy自动帮你生成项目框架文件,结构如下:

tutorial/
scrapy.cfg # 框架配置文件 tutorial/ # 整个项目目录
__init__.py items.py # 数据结构在这里定义 pipelines.py # 管道处理 settings.py # 项目配置文件 spiders/ # 爬虫目录
__init__.py

3. 流程介绍##

  • items.py 定义你所爬取的目标数据的结构。比如你要抓取贴吧,那么结构应该类似 用户-头像-主帖id-帖子id-帖子内容-其他等等。如果抓取知乎,数据结构应该类似 用户-头像-签名-回答-问题id-点赞数-评论数。简单来说,就是设计表结构。
  • pipelines.py 按照设计者命名来分析,这个管道的作用是将抓取的数据进行一定的处理封装,里面内置的 parse_item 方法也从名字上印证这一点。比如抓到的是转码数据,在这里可以解码翻译。实际项目中通常在这里进行数据库落地操作,把抓取的 item 存入mysql或者mogodb,最后再 return item 即可。
  • spiders/xxx.spider.py 实际的爬虫策略都在这个目录下。一个文件表示一个爬虫。通常的流程是 初始链接(首页或者登录页) -- 分析内容,在回调中继续抓取下一页(执行登录操作) -- 继续分析内容,回调抓取... 这里我们不用考虑cookie,scrapy会自动帮我们处理。

4. 小结##

如果之前有用 urllib 进行过爬虫联系,那么只要熟悉了scrapy框架的各个文件作用,使用scrapy可以说是收到擒来.有几个参考方法:

  • post请求(登录用到): formRequest
  • 分析网页内容: response.css()

Scrapy框架初探的更多相关文章

  1. Python爬虫 ---scrapy框架初探及实战

    目录 Scrapy框架安装 操作环境介绍 安装scrapy框架(linux系统下) 检测安装是否成功 Scrapy框架爬取原理 Scrapy框架的主体结构分为五个部分: 它还有两个可以自定义下载功能的 ...

  2. Scrapy 框架进阶笔记

    上一篇简单了解了scrapy各个模块的功能:Scrapy框架初探 -- Dapianzi卡夫卡 在这篇通过一些实例来深入理解 scrapy 的各个对象以及它们是怎么相互协作的 settings.py ...

  3. scrapy架构初探

    scrapy架构初探 引言 Python即时网络爬虫启动的目标是一起把互联网变成大数据库.单纯的开放源代码并不是开源的全部,开源的核心是"开放的思想",聚合最好的想法.技术.人员, ...

  4. scrapy框架爬取豆瓣读书(1)

    1.scrapy框架 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试 ...

  5. Python爬虫Scrapy框架入门(2)

    本文是跟着大神博客,尝试从网站上爬一堆东西,一堆你懂得的东西 附上原创链接: http://www.cnblogs.com/qiyeboy/p/5428240.html 基本思路是,查看网页元素,填写 ...

  6. Python爬虫Scrapy框架入门(1)

    也许是很少接触python的原因,我觉得是Scrapy框架和以往Java框架很不一样:它真的是个框架. 从表层来看,与Java框架引入jar包.配置xml或.property文件不同,Scrapy的模 ...

  7. Scrapy框架使用—quotesbot 项目(学习记录一)

    一.Scrapy框架的安装及相关理论知识的学习可以参考:http://www.yiibai.com/scrapy/scrapy_environment.html 二.重点记录我学习使用scrapy框架 ...

  8. Python爬虫从入门到放弃(十一)之 Scrapy框架整体的一个了解

    这里是通过爬取伯乐在线的全部文章为例子,让自己先对scrapy进行一个整理的理解 该例子中的详细代码会放到我的github地址:https://github.com/pythonsite/spider ...

  9. Python爬虫从入门到放弃(十二)之 Scrapy框架的架构和原理

    这一篇文章主要是为了对scrapy框架的工作流程以及各个组件功能的介绍 Scrapy目前已经可以很好的在python3上运行Scrapy使用了Twisted作为框架,Twisted有些特殊的地方是它是 ...

随机推荐

  1. HashMap去重

    package util; import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import jav ...

  2. Flex学习之(JS中调用Flex的方法)

    flex端 public function initApp():void   {    ExternalInterface.addCallback("function1",call ...

  3. Selenium-元素定位与操作

    UI的自动化本质就是识别元素,操作元素,而元素的识别就是通过HTML的标签和属性,所以对于基本的HTML的只是是必备的 随着页面复杂度的提升,加之很多公司的开发也没有统一规范,这就给识别元素造成了非常 ...

  4. Python中进度条如何实现

    print源码,参数end默认值为换行符,需要置成空,就会实现打印一行的效果 import time for i in range(100): time.sleep(1)#sleep一秒再输出 # 需 ...

  5. 第十七章-异步IO

    异步IO的出现源自于CPU速度与IO速度完全不匹配 一般的可以采用多线程或者多进程的方式来解决IO等待的问题 同样异步IO也可以解决同步IO所带来的问题 常见的异步IO的实现方式是使用一个消息循环, ...

  6. Convolutional Neural Networks for Visual Recognition 3

    Gradient Computing 前面我们介绍过分类器模型一般包含两大部分,一部分是score function,将输入的原始数据映射到每一类的score,另外一个重要组成部分是loss func ...

  7. windows 2013 datacenter 安装sql server2008 r2兼容性

    add-windowsfeature RSAT-Clustering-AutomationServer

  8. bzoj 4260: REBXOR Trie+乱搞

    题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=4260 题解: 啊啊啊. 被这种SB题坑了半天. 求出异或前缀和后 从n到1枚举\(r_1 ...

  9. Anthem.NET 的回调流程图

    下面用一个最简单的 anthem:Button 回调作为例子,理清回调过程中执行函数的次序.代码如下: <%@ Page Language="C#" AutoEventWir ...

  10. BZOJ2428:[HAOI2006]均分数据

    我对模拟退火的理解:https://www.cnblogs.com/AKMer/p/9580982.html 题目传送门:https://www.lydsy.com/JudgeOnline/probl ...