Scrapy相BeautifulSoup或lxml比较,如何呢?

BeautifulSoup 及 lxml 是HTML和XML的分析库。Scrapy则是

编写爬虫,爬取网页并获取数据的应用框架(application framework)。

Scrapy提供了内置的机制来提取数据(叫做

选择器(selectors))。

但如果您觉得使用更为方便,也可以使用 BeautifulSoup (或 lxml)。

总之,它们仅仅是分析库,可以在任何Python代码中被导入及使用。

换句话说,拿Scrapy与 BeautifulSoup (或 lxml) 比较就好像是拿

jinja2 与 Django 相比。

Scrapy支持那些Python版本?

Scrapy仅仅支持Python 2.7。

Python2.6的支持从Scrapy 0.20开始被废弃了。

Scrapy支持Python 3么?

不。但是Python 3.3+的支持已经在计划中了。

现在,Scrapy支持Python 2.7。

参见

Scrapy支持那些Python版本?.

Scrapy是否从Django中”剽窃”了X呢?

也许吧,不过我们不喜欢这个词。我们认为 Django 是一个很好的开源项目,同时也是

一个很好的参考对象,所以我们把其作为Scrapy的启发对象。

我们坚信,如果有些事情已经做得很好了,那就没必要再重复制造轮子。这个想法,作为

开源项目及免费软件的基石之一,不仅仅针对软件,也包括文档,过程,政策等等。

所以,与其自行解决每个问题,我们选择从其他已经很好地解决问题的项目中复制想法(copy idea)

,并把注意力放在真正需要解决的问题上。

如果Scrapy能启发其他的项目,我们将为此而自豪。欢迎来抄(steal)我们!

Scrapy支持HTTP代理么?

是的。(从Scrapy 0.8开始)通过HTTP代理下载中间件对HTTP代理提供了支持。参考

HttpProxyMiddleware.

如何爬取属性在不同页面的item呢?

参考 Passing additional data to callback functions.

Scrapy退出,ImportError: Nomodule named win32api

这是个Twisted bug ,您需要安装 pywin32 。

我要如何在spider里模拟用户登录呢?

参考 使用FormRequest.from_response()方法模拟用户登录.

Scrapy是以广度优先还是深度优先进行爬取的呢?

默认情况下,Scrapy使用 LIFO 队列来存储等待的请求。简单的说,就是

深度优先顺序 。深度优先对大多数情况下是更方便的。如果您想以

广度优先顺序 进行爬取,你可以设置以下的设定:

DEPTH_PRIORITY = 1

SCHEDULER_DISK_QUEUE = 'scrapy.squeue.PickleFifoDiskQueue'

SCHEDULER_MEMORY_QUEUE = 'scrapy.squeue.FifoMemoryQueue'

我的Scrapy爬虫有内存泄露,怎么办?

参考 调试内存溢出.

另外,Python自己也有内存泄露,在

Leaks without leaks 有所描述。

如何让Scrapy减少内存消耗?

参考上一个问题

我能在spider中使用基本HTTP认证么?

可以。参考 HttpAuthMiddleware.

为什么Scrapy下载了英文的页面,而不是我的本国语言?

尝试通过覆盖 DEFAULT_REQUEST_HEADERS 设置来修改默认的 Accept-Language 请求头。

我能在哪里找到Scrapy项目的例子?

参考 例子.

我能在不创建Scrapy项目的情况下运行一个爬虫(spider)么?

是的。您可以使用 runspider 命令。例如,如果您有个

spider写在 my_spider.py 文件中,您可以运行:

scrapy runspider my_spider.py

详情请参考 runspider 命令。

我收到了 “Filtered offsite request” 消息。如何修复?

这些消息(以 DEBUG 所记录)并不意味着有问题,所以你可以不修复它们。

这些消息由Offsite Spider中间件(Middleware)所抛出。

该(默认启用的)中间件筛选出了不属于当前spider的站点请求。

更多详情请参见:

OffsiteMiddleware.

发布Scrapy爬虫到生产环境的推荐方式?

参见 Scrapyd.

我能对大数据(large exports)使用JSON么?

这取决于您的输出有多大。参考

JsonItemExporter 文档中的

这个警告

我能在信号处理器(signal handler)中返回(Twisted)引用么?

有些信号支持从处理器中返回引用,有些不行。参考

内置信号参考手册(Built-in signals reference) 来了解详情。

reponse返回的状态值999代表了什么?

999是雅虎用来控制请求量所定义的返回值。

试着减慢爬取速度,将spider的下载延迟改为 2 或更高:

class MySpider(CrawlSpider):

name = 'myspider'

download_delay = 2

# [ ... rest of the spider code ... ]

或在 DOWNLOAD_DELAY 中设置项目的全局下载延迟。

我能在spider中调用 pdb.set_trace() 来调试么?

可以,但你也可以使用Scrapy终端。这能让你快速分析(甚至修改)

spider处理返回的返回(response)。通常来说,比老旧的 pdb.set_trace() 有用多了。

更多详情请参考 在spider中启动shell来查看response.

将所有爬取到的item转存(dump)到JSON/CSV/XML文件的最简单的方法?

dump到JSON文件:

scrapy crawl myspider -o items.json

dump到CSV文件:

scrapy crawl myspider -o items.csv

dump到XML文件:

scrapy crawl myspider -o items.xml

更多详情请参考 Feed exports

在某些表单中巨大神秘的 __VIEWSTATE 参数是什么?

__VIEWSTATE 参数存在于ASP.NET/VB.NET建立的站点中。关于这个参数的作用请参考

这篇文章 。这里有一个爬取这种站点的

样例爬虫 。

分析大XML/CSV数据源的最好方法是?

使用XPath选择器来分析大数据源可能会有问题。选择器需要在内存中对数据建立完整的

DOM树,这过程速度很慢且消耗大量内存。

为了避免一次性读取整个数据源,您可以使用

scrapy.utils.iterators 中的 xmliter 及 csviter 方法。

实际上,这也是feed spider(参考 Spiders)中的处理方法。

Scrapy自动管理cookies么?

是的,Scrapy接收并保持服务器返回来的cookies,在之后的请求会发送回去,就像正常的网页浏览器做的那样。

更多详情请参考 Requests and Responses 及 CookiesMiddleware 。

如何才能看到Scrapy发出及接收到的Cookies呢?

启用 COOKIES_DEBUG 选项。

要怎么停止爬虫呢?

在回调函数中raise CloseSpider 异常。

更多详情请参见: CloseSpider 。

如何避免我的Scrapy机器人(bot)被禁止(ban)呢?

参考 避免被禁止(ban).

我应该使用spider参数(arguments)还是设置(settings)来配置spider呢?

spider参数 及 设置(settings) 都可以用来配置您的spider。

没有什么强制的规则来限定要使用哪个,但设置(settings)更适合那些一旦设置就不怎么会修改的参数,

而spider参数则意味着修改更为频繁,在每次spider运行都有修改,甚至是spider运行所必须的元素

(例如,设置spider的起始url)。

这里以例子来说明这个问题。假设您有一个spider需要登录某个网站来

爬取数据,并且仅仅想爬取特定网站的特定部分(每次都不一定相同)。

在这个情况下,认证的信息将写在设置中,而爬取的特定部分的url将是spider参数。

我爬取了一个XML文档但是XPath选择器不返回任何的item

也许您需要移除命名空间(namespace)。参见 移除命名空间.

怎么看python帮助手册常见问题商家认证_常见问题(FAQ) - Scrapy 中文文档相关推荐

  1. python pptx库中文文档_基于python-pptx库中文文档及使用详解

    个人使用样例及部分翻译自官方文档,并详细介绍chart的使用 一:基础应用 1.创建pptx文档类并插入一页幻灯片 from pptx import Presentation prs = Presen ...

  2. python pptx教学_基于python-pptx库中文文档及使用详解

    个人使用样例及部分翻译自官方文档,并详细介绍chart的使用 一:基础应用 1.创建pptx文档类并插入一页幻灯片 from pptx import Presentation prs = Presen ...

  3. python人体识别_Github开源人体姿态识别项目OpenPose中文文档

    OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以caffe为框架开发的开源库.可以实现人体动作.面部表情.手指运动等姿态估计.适用于单人和多人,具有极好的鲁 ...

  4. lavaral中文手册_【laravel7.x中文文档】路由

    路由 [TOC] 基本路由 构建基本路由只需要一个 URI 与一个 闭包 ,这里提供了一个非常简单优雅定义路由的方法: Route::get('foo', function () { return ' ...

  5. kibana 更新 索引模式_升级 Kibana - Kibana 中文文档

    IMPORTANT: 在升级 Kibana 之前: 请参考重要变更文档. 在升级生产服务之前请先在测试环境测试升级. 使用 Elasticsearch 的 snapshots 特性备份数据.除非存在备 ...

  6. angular乱码_号外!Angular 中文文档已同步翻译至 7.0

    从 Angular 7 发布(2018-10-18)至今已经过去四天了.四天的时间够干嘛的?只够我把它的文档(几乎)同步翻译完而已! 现在,它已经发布在了 https://angular.cn/doc ...

  7. dropout层加在哪里_常用层 - Keras中文文档

    常用层 常用层对应于core模块,core内部定义了一系列常用的网络层,包括全连接.激活层等 Dense层 keras.layers.core.Dense(units, activation=None ...

  8. python语言需要英语非常好吗-Python用不好英语水平不够?这里有官方中文文档你看不看...

    Python 作为世界上最好用的语言,官方支持的文档一直没有中文.小伙伴们已经习惯了原汁原味的英文文档,但如果有官方中文文档,那么查阅或理解速度都会大大提升.本文将介绍隐藏在 Python 官网的中文 ...

  9. python中文昵称-官方出品 Python 中文文档!拜托,别再说看不懂了

    点击" 开发者技术前线 ",选择"星标�" 在看|星标|留言, 真爱 回复"666",获取一份技术人专属大礼包 作者:机器之心 参与:思源 ...

  10. 学python不会英语怎么办_Python学习 英语不好怎么办?这里有官方中文文档你看不看...

    Python 作为世界上最好用的语言,官方支持的文档一直没有中文.小伙伴们已经习惯了原汁原味的英文文档,但如果有官方中文文档,那么查阅或理解速度都会大大提升.本文将介绍隐藏在 Python 官网的中文 ...

最新文章

  1. Rsession: R sessions wrapping for Java
  2. 原创 | 一文了解边缘计算和边缘AI
  3. 使用LitePal操作数据库(CRUD增删改查) 项目已上传GitHub
  4. linux ubuntu 17,Ubuntu 17.04(Zesty Zapus)已经结束支持,请升级到Ubuntu 17.10
  5. Intel Edision安装Android Things
  6. Aspose.Word 的常见使用(不用模板创建)
  7. java.util.regex_java.util.regex.PatternSyntaxException:索引附近的...
  8. 用ASP.NET Core 2.1 建立规范的 REST API -- 保护API和其它
  9. 安装ISO系统(原版系统)系统终极方法
  10. php运行出现Call to undefined function curl_init()解决方法
  11. 如何自定义MongoDB的存储桶
  12. Java编程,打印昨天的当前时刻
  13. Idea中的maven灰色
  14. Filter过滤器执行流程
  15. vue如何加载html字符串_vue如何给html字符串添加指令?
  16. opencv有基于c语言的教程吗_VS2019配置opencv详细图文教程和测试代码的实现
  17. Linux Buffers和Cached的区别(转)
  18. 遥感解译结果(多要素)用Arcgis做拓扑检查
  19. 软件测试报告模板--实用--绝对靠谱
  20. 商汤内推:2023届(AI先锋/校园招聘)

热门文章

  1. uniapp小程序倒计时
  2. 卸载极速PDF后鼠标右键还有快捷方式,取消快捷方式的方法
  3. 你知道 FW 工程师 是做什么的吗?
  4. conda安装本地whl文件
  5. Retinex低光照图像增强
  6. web optimize_image / Jpegoptim / ImageOptim / google webP
  7. php调用海康,手把手教你php对接海康api
  8. Windows和Linux拷贝文件的方法
  9. Android JS交互-记录我所遇到的
  10. 人脸对齐—级联回归模型和深度学习模型