笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

常见问题

发布者: 笨鸟自学网



我正在抓取一个XML文档,而我的xpath选择器没有返回任何项

可能需要删除命名空间。见 正在删除命名空间 .

如何在项目管道中将项目拆分为多个项目?

Item pipelines 无法为每个输入项生成多个项。 Create a spider middleware 而是使用它 process_spider_output() 方法。例如::

from copy import deepcopy

from itemadapter import is_item, ItemAdapter

class MultiplyItemsMiddleware:

    def process_spider_output(self, response, result, spider):
        for item in result:
            if is_item(item):
                adapter = ItemAdapter(item)
                for _ in range(adapter['multiply_by']):
                    yield deepcopy(item)

Scrapy支持IPv6地址吗?

是的,通过设置 DNS_RESOLVER 到 scrapy.resolver.CachingHostnameResolver . 注意,这样做,您就失去了为DNS请求设置特定超时的能力( DNS_TIMEOUT 设置被忽略)。

如何处理 <class 'ValueError'>: filedescriptor out of range in select() 例外情况?

本期 has been reported 在macOS中运行broad crawls时出现,默认的Twisted reactor是 twisted.internet.selectreactor.SelectReactor . 通过使用 TWISTED_REACTOR 设置。

如何取消对给定响应的下载?

在某些情况下,停止下载特定响应可能很有用。例如,有时您可以通过检查响应的标头或正文的第一个字节来确定是否需要响应的完整内容。在这种情况下,可以通过将处理程序附加到 bytes_received 或 headers_received 信号并引发 StopDownload 例外情况。请参阅 停止下载响应 主题,了解更多信息和示例。

正在运行 runspider 我得到了 error: No spider found in file: <filename>

如果您的Scrapy项目有一个爬网模块,其名称与其中一个的名称冲突,则可能会发生这种情况 Python standard library modules ,例如 csv.py 或 os.py ,或任何 Python package 您已经安装的。看见 issue 2680 。

123456
上一篇:远程登录控制台下一篇:调试spiders

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-9-8 11:39 , Processed in 1.808480 second(s), 17 queries .

© 2001-2020

返回顶部