scrapy中的响应对象不完整

对不起,如果这个问题很愚蠢,但我还找不到答案 我正在尝试准备脚本,以便使用“scrapy shell”命令从网站提取数据: 使用web浏览器输入url(例如“”),我获取要提取的数据。页面包含静态数据+动态数据 使用命令“scrapyshell”,然后发出命令(“view(response)”,我在web浏览器中看到页面的静态数据,但没有看到动态数据 我怀疑web服务器首先提供静态数据,然后在页面中填充动态数据。我想这是通过网页上的javascript来管理的 如果我的理解是正确的,那么需要

Scrapy 根据传入的参数委托给'SitemapSpider'或'CrawlSpider'的基'Spider'类?

我以前提到过重用我编写的parse方法,以便根据是否在start\u url参数中传递,使我的爬行器的行为有所不同。如果是,它应该只抓取那些给定的URL(不跟随),但是如果不是,它应该抓取整个站点(跟随链接) 我得到的答案非常有用,效果也很好,并产生了如下CrawlSpider定义: from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors import LinkExtracto

Scrapy 禁用存储在.jl提要中的项目

问题 我想知道如何禁用存储在scrapyd中的项目 我尝试的 我在Scrapy守护进程中部署了一个spider。部署的spider将spidered数据存储在数据库中。而且效果很好 但是,Scrapyd会记录每个刮下的刮痕。您可以在检查scrapyd时看到这一点。 此项目数据存储在…/items//.jl 我不知道如何禁用它。我在Docker容器中运行scrapyd,它占用了太多的存储空间 我已经试过了,但这似乎对我没有任何帮助。scrapyd似乎忽略了所有spider日志记录设置 编辑 我在关

Scrapy 爬行器爬行器:爬行器错误处理引发NotImpmentedError

我一直在试着让我的头脑清醒过来,但我没有太多的运气超越基本的东西。当我运行spider时,我会得到一个spider错误处理页面和一个尚未实现的spider豁免,但是如果我使用scrapy fetch则会输出html响应,因此不是说站点不可用。下面包括输出以及我的项目、spider和设置值 Items.py class MycrawlerItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.F

如何使用scrapy从amazon提取所有品牌的列表

我正试图在amazon.com上使用scrapy爬行,并试图收集列出的所有品牌的数据。 这是一个潦草的脚本: class StayuncleCrawlerSpider(CrawlSpider): name = 'amazon_crawler' allowed_domains = ['amazon.com'] start_urls = ['https://www.amazon.com/gp/search/other/ref=sr_in_a_V?rh=i%3Aelectr

Scrapy 刮痧

我已经创建了spider,以便根据我的要求从internet上抓取页面,但过了一段时间后,他们将身份验证机制更改为SSO scrapy可以从SSO认证网站下载内容吗?应该可以,但scrapy没有神奇之处,你必须按照常规路线:

Scrapy 无法让xpath选择下一步按钮

我正在尝试爬网这个gem网站: 发生了一些奇怪的事情,我不知道如何获取某些元素,如下一步按钮中的href 比如说, response.xpath('//section')生成: [<Selector xpath='//section' data='<section class="specimen-details">\n\t<...'>, <Selector xpath='//section' data='<section clas

Scrapy ';导入错误:没有名为<;的模块;项目名称>;。设置';烟度试验

scrapy crawl在我的项目中运行良好 在冒烟测试中,我抓取一个私有页面,并断言这些项目与预期一致 在我完成一个严肃的项目重构之前,一切都很顺利,对于冒烟测试,最终在setUp()中设置了一个env var,它实际上设置了os.environ['SCRAPY\u SETTINGS\u MODULE']='.SETTINGS' 设置此环境变量后,scrapy crawl抱怨'ImportError:No module named.settings' scrapy.cfg设置正确,除此烟雾测试

Scrapy 如何忽略带有查询字符串的URL(?xxx=xxx)

我希望我的爬行器忽略任何具有查询字符串的URL。我曾尝试在LinkedExtractor(见下文)中的拒绝规则(用于\?)中添加一个表达式,但它被忽略了。我的爬行器仍在爬行/提取包含?字符的URL 我只有一个起始URL,它是我的域的根,所以抓取链接的唯一方法是通过LinkExtractor 这是爬行蜘蛛实现中的唯一规则 Rule(LinkExtractor( allow=(), deny=(':443', ':80', '\?', )),

如何使用scrapy仅提取每个标记的一个元素?

我正在尝试使用srapy shell中的以下命令从页面标记中提取文本: [w.strip() for w in response.xpath('//ul[@class="attribute-list"]/li/dl/dd/text()').extract()] dd标记如下所示: <dd> Edelstahl <br>gebürstet (silberfarben) </dd> 现在重要的是,我要么只得到第一个元素“Edelstahl”,要么同时得到两个复

Scrapy 刮擦:仅显示整页的文本(如人眼所见)

如何在浏览器中突出显示整个页面,即不显示页面源代码,在记事本中复制/粘贴,即不显示超链接,只显示文本 我想要的是人类阅读的文本,而不是答案中的页面来源: 原因: 我将获得文本表示,以及页面url,并在elasticsearch中为其编制索引,使其成为站点搜索解决方案。我不希望在索引时出现凌乱的html/js代码。模块html2text可以在删除标记时将html转换为纯文本: import html2text converter = html2text.HTML2Text() bodyText

Scrapy 刮削:如何在刮削时不将所有内容打印到屏幕上

当我在刮东西的时候,我看到屏幕上有scrapy正在拉的所有东西的输出。有没有办法不显示此信息,而只显示爬行器正在运行的某种状态?我想你指的是日志,可能它设置为默认的DEBUG,所以要显示重要的碎片信息,我想你应该将其设置为INFO,只需转到settings.py并添加: LOG_LEVEL = 'INFO'

如何处理scrapy shell中的错误302

我正在尝试刮取一个被重定向的页面,我尝试设置一个用户代理,但它也不起作用 我在另一个问题中看到了这一点: meta = {'dont_redirect': True,'handle_httpstatus_list': [302]} 如何在scrapy shell中测试它?当使用scrapy shell时,最简单的方法可能是在命令行上使用REDIRECT\u ENABLED=0设置禁用RedirectMiddleware 比较这一点,完全禁用重定向: $ scrapy shell -s REDI

Scrapy 从具有不同值的同一url获取重复请求

我试图抓取一些数据作为我的辅助项目,但在收集数据时遇到了问题。我已经试了两天,运气不好 第一个问题: 当我从主页抓取帖子时,我得到了一个错误的标记 第二个问题: 我已经阅读并尝试实现获取电话号码,但徒劳无功, 还是这个答案 第三个问题: 如何实现下一页(注释掉gumtree.py中的代码) 第四个问题: 我现在可以获得电话号码,但我收到了对同一url的重复请求,请求的值不同,[参见结果] 如果有人能给我指点方向,我将不胜感激。 我的主要目标是抓取有电话号码的帖子 我试图搜索stackoverf

为所有scrapy Spider编写函数

所以我正在尝试编写可以从所有scrapy Spider调用的函数。 在我的项目中是否有一个地方可以定义这些函数,或者需要在每个spider中导入它们 谢谢你不能在python中隐式导入代码(至少在没有破解的情况下),毕竟显式比隐式好——所以这不是一个好主意 然而,在scrapy中,使用具有通用函数和方法的基本Spider类是非常常见的 假设您有以下树: ├── myproject │   ├── __init__.py │   ├── spiders │   │   ├── __init__.p

Scrapy 什么';“这是最简单的方法”;“设置配置文件”;用刮痧?

Scrapy从settings.py中选择设置(也有默认设置、项目设置和每蜘蛛设置)。我正在寻找的是能够有多个带有设置的文件,并且能够在快速启动爬行器时在它们之间切换。如果文件之间有一些继承,那也太棒了 如果您从Java世界了解Spring Boot,那么就有了配置文件的概念。您有application.settings文件和基本设置。然后您可以有application-dev.settings和application-prod.settings。如果您使用选项-Dspring.profiles

当我尝试启动spider时,获取和验证Scrapyd api

我对ScrapydAPI有意见 我写了一个简单的spider,它获取域url作为参数 import scrapy class QuotesSpider(scrapy.Spider): name = 'quotes' def __init__(self, domains=None): self.allowed_domains = [domains] self.start_urls = ['http://{}/'.format(domains)]

Scrapy使用scrapyredis分发

当我使用scrapy编写带有scrapy redis的分布式爬虫程序时,我只将请求队列存储在redis中,没有存储重复数据消除指纹队列 # Spider code import scrapy from datetime import datetime from machinedigikey.items import Detail_Item from scrapy_redis.spiders import RedisSpider class DgkUpdateDetailSpider(Redis

Scrapy如何从不同的div类循环提取数据

如何提取不同div类下的数据?我只能使用span.field-content获得它,但不能使用div <div class="view-content"> <div class="views-row views-row-1 views-row-odd views-row-first"> <div class="views-field views-field-acronym"> <span class="field-content"

Python Scrapy-如何从另一个spider方法调用变量?

所以我试图学习scrapy,对于学习项目,我想刮取这个网站的项目名称(仅从1个类别atm),然后输入这些项目URL并抓取描述文本 我已经得到一些关于编写2个spider的建议,但我不知道如何从parse方法中的变量中从第一个spider获取数据到第二个spider以填充start\u URL 这就是我所处的位置: import scrapy class Names(scrapy.Spider): name = 'killernames' start_urls = ['ht

如何从scrapy spider返回数据?

我有点纠结于如何准确地返回scrapy spider的输出,以便在另一个函数或全局范围内使用它。在下面的代码中,我尝试返回res变量,就像您通常对函数所做的那样,但对于Scrapy,它似乎不起作用,而是为列表中的每个URL返回以下错误:返回请求、项或无,获得'str' 谢谢你花时间来研究这件事 import scrapy from scrapy.crawler import CrawlerProcess import logging #disable logging for scrapy -

使用scrapyd的优势是什么?

scrapy doc说: Scrapy附带了一个名为“Scrapyd”的内置服务,它允许您使用JSON web服务部署(aka.upload)您的项目并控制它们的爬行器 使用scrapyd是否有一些优势?scrapyd允许您在不同的机器上运行scrapy,而不是通过一个方便的web API使用的机器,这意味着您可以使用curl甚至web浏览器上传新的项目版本并运行它们。否则,如果您想在云中某处运行Scrapy,您必须scp复制新的spider代码,然后使用ssh登录并生成Scrapy crawl

Scrapy 瘙痒以下兄弟姐妹强:结果不对

我正在使用scrapy来提取部分地址,我需要帮助了解地址的语法。下面是代码(如果这是无效代码,请道歉,不知道如何正确粘贴到问题中) 行item['address1']=site.select('strong[text()=“Physical Address”]/“following sibling::text()[1]”)返回字符串值[]。最后几个字符被剪裁 当我添加.extract()时,cmd中的值显示为[u'\n\t\t\t 123 address street,someplace,som

Scrapy 如何在运行时监控刮擦的状态

我想知道在scrapy运行时发生了什么,如何监控状态?有两种方法。第一种方法,这里是一个来自官方文件的示例 telnet localhost 6023 >>> est() Execution engine status time()-engine.start_time : 8.62972998619 engine.has_capacity() : False len(engine.downloader.active) : 16 engine.sc

Scrapy异步项目管道

我正在编写一个项目管道,它使用Pika将项目拖放到RabbitMQ队列。目前我使用的是阻塞/同步方法,这显然不是一个好主意。我想使用类似于的异步方法,但我不知道如何向已经运行的反应器添加延迟任务。例如,pika连接的twisted版本的示例代码如下所示: d = cc.connectTCP('hostname', 5672) d.addCallback(lambda protocol: protocol.ready) d.addCallback(run) reactor.run() # Prob

运行Tor代理的Scrapy Splash

我尝试构建splash的代理设置。在这里,我将Tor或Polipo端口地址分配给set\u proxy,但它不起作用。我得到504个错误: function main(splash) local host = "localhost" local port = 8123 --local type = "SOCKS5" splash:on_request(function (request)

Scrapy Crawlera中间件命令以启用httpcache

我不想对已经使用httpcache中间件缓存的页面使用crawlera代理服务(因为我对每月的调用次数有限制) 我正在使用crawlera中间件,并通过以下方式启用它: DOWNLOADER_MIDDLEWARES = { 'scrapy_crawlera.CrawleraMiddleware': 610} 按照文档中的建议() 不过,爬网结束后,我得到: 2017-04-23 00:14:24 [scrapy.statscollectors] INFO: Dumping Scrapy

使用带有规则的start_请求进行Scrapy

我找不到任何使用带规则的start_请求的解决方案,也没有在互联网上看到任何这两个请求的例子。我的目的很简单,我想重新定义start_请求函数,以便能够捕获所有请求中的异常,并在请求中使用meta。这是我的蜘蛛的代码: 类TestSpider(爬行蜘蛛): 名称='test' 允许的_域=['www.oreilly.com'] 开始\u URL=[''] 这段代码只刮一页。我尝试修改它,而不是: def parse_item(self, response): item = {}

Scrapy 刮擦服务器设置

我试图在AWS上设置一个scrapyd服务器,并试图从本地计算机访问它。到目前为止,我设法在远程机器上运行scrapyd 我知道它正在运行,因为当我执行start scrapyd时,我得到start:Job已经在运行:scrapyd 我需要做什么才能从本地计算机访问它?您可以使用ssh端口转发: ssh scrapyd.host.com -L 6800:localhost:6800 然后从本地计算机访问scrapyd at

scrapy无法导出到CSV

我正在使用以下管道将我的项目导出到CSV(使用Scrapy 0.17): 但是,当我使用此管道时,会出现以下错误: 异常。AttributeError:'CsvExportPipeline'对象没有属性'exporter' 请说明我缺少什么?找到了解决方案。问题是在命名文件时使用self.name。它应该是spider.name 嗯,这个错误信息只是误导,占用了几个小时 from scrapy import signals from scrapy.contrib.exporter import

Scrapy 如何在一个粗糙的项目中管理多个spider

我是个新手,但我已经成功地创造了一只相当复杂的蜘蛛。现在我想在同一个项目中再添加一些。我试图复制我的工作爬行器并编辑它以与另一个目标一起工作,但我得到了各种各样的全局变量错误。我曾经尝试过“我的新蜘蛛”但似乎所有的蜘蛛都被启动了。有什么好处?是否应该在现有的spider中添加一个新类?这似乎不可扩展。。。任何指点都将不胜感激。医生让我走得很远,但我现在绊倒了 非常感谢 我从你的问题中了解到,添加更多spider的最佳方法是在spider文件夹下的新文件中添加新类, 尝试为每个蜘蛛分别命名。使用此

Scrapy-有没有办法通过蜘蛛清除饼干

我正在通过scrapy爬行一个网站。在一系列请求之后,爬行器停止,这意味着没有分页。当我在浏览器中打开同一页时,它显示为“请关闭浏览器并重试”或返回主页并重试,但当我在“资源”选项卡中检查元素并清除Cookie时,我可以再次查看该页 我现在如何用我的蜘蛛清理饼干????我已将下载延迟添加为4,但仍然看到相同的问题请尝试禁用settings.py文件中的cookie。设置: COOKIES_ENABLED = False 你可以发布起始url吗?@Jithin你应该粘贴蜘蛛代码。否则,reque

Scrapy pythonwebscraper有问题吗

我是个新手,希望能得到一些帮助,或者只是朝着正确的方向努力。我目前尝试使用scrapy,但根本无法让它工作。 我想做的是从中获得标题、插曲和HTML5视频播放器链接的+不同质量(480p、720p等)。我不确定我是如何从iframe元素中获取视频src的 如前所述,任何帮助都将非常有用 我不曾有过Scrapy的经验,但我自己正处在一个Python网络擦伤项目的中间。我用BeautifulSoup刮 我已经编写了部分代码-这将获取所有的标题、剧集、缩略图,并将链接加载到新页面进行进一步处理。如果您

Scrapy 重新启动或杀死服务器

我已经在我的Mac上安装并运行了scrapyd,但我想重新启动或终止它-我认为这可能是通过pip安装后无法让scrapyd客户端正常工作的一个原因 我找不到杀死或重新启动它的方法。我通过pip安装并运行以下命令来启动它: scrapyd 有什么想法吗? killall scrapyd 这将杀死Scrapyd,因此所有正在运行的作业也将被杀死。Do killall scrapyd 这将杀死Scrapyd,因此所有正在运行的作业也将被杀死。请参阅

如何在scrapy中使用管道项目

我是scrapy的新用户,可以抓取我的网站。我想将抓取的数据存储到mysql数据库中。 myspider.py: 对于pipelines.py,我修改并使用了googldir的示例。因此,当我运行crawl时,会出现以下错误: exceptions.AttributeError:“MininovaSpider”对象没有属性“iterkeys” exceptions.TypeError:“MininovaSpider”对象不可下标 pipeline.py: from scrapy import l

Scrapy 剪贴和开始URL

我正在从一堆页面的标题标签中删除文本,但还希望在我的项目中包含我的起始URL作为字段。有人知道我是怎么做到的吗?当我将数据导出到CSV时,我希望看到标题旁边的开始URL 这是我的蜘蛛的密码--- 您可以这样做: item['start_url'] = response.url item['start_url'] = response.url

在Scrapy Spider中实现标头、正文时出错

当试图废弃一个传递页眉和正文的页面时,我得到如下错误显示 我尝试转换为json、str并发送它,但没有给出任何结果。 如果需要更改,请告诉我 代码 import scrapy class TestingSpider(scrapy.Spider): name = "test" def start_requests(self): request_headers = { "Host": "host_here", "Use

通过scrapy登录到该站点

我在网站上做了一个官方的视频课程授权。 如果用户名和密码不正确,则转换到回调方法是成功的;如果登录名和密码正确,则转换到回调方法是不可行的。 我的代码: 进口羊瘙痒 class QuotesSpider(scrapy.Spider): name = "quotes" start_urls = ["https://www.darkorbit.com"] def parse(self, response): login_url = response.css(

Tripadvisor的Scrapy spider爬网了0页(0页/分钟)

我正在努力为蓬塔卡纳的所有酒店搜集评论。代码似乎在运行,但当我调用crawl时,它实际上不会对任何站点进行爬网。下面是我的文件结构,我调用了什么,以及运行它时发生了什么 文件夹结构: ├── scrapy.cfg └── tripadvisor_reviews ├── __init__.py ├── __pycache__ │   ├── __init__.cpython-37.pyc │   ├── items.cpython-37.pyc │   └─

Scrapy 刮痧爬行蜘蛛只会爬行,就好像深度=1,并在原因=完成时停止

我有一个相当简单的爬行器,它从文件(工作)加载URL,然后开始爬行并归档HTML响应 它以前工作得很好,从几天以来,我再也弄不清楚我做了什么改变使它停止工作。 现在,爬行器仅爬行每个URL的第一页,然后停止: 'finish\u reason':'finished', 蜘蛛网: class TesterSpider(爬行蜘蛛): 名称='tester' 允许的_域=[] 规则=( 规则(LinkExtractor(allow=(),deny=(r'.*Zahlung.*,r'.*Cookies.

Scrapy 为什么我的瘙痒反应身体是空的?

我最近在学刮痧。我尝试使用它最简单的方式获取响应体,但得到了一个空字符串 这是我的密码: >>> from scrapy.http import Response >>> r = Response('http://zenofpython.blog.163.com/blog/static/23531705420146124552782') >>> r.body '' >>> r.headers {} >>>

在scrapy中使用请求有效负载发布请求

我怎么刮这个?如何使用有效负载发送post请求并从中获取数据 如果我使用这段代码,我可以刮取第一页,但我如何刮取第二页?我需要用硒吗?还是说我的皮肤够痒 import scrapy from scrapy import log from scrapy.http import * import urllib2 class myntra_spider(scrapy.Spider): name="myntra" allowed_domain=[] start_urls=["ht

运行Scrapy Spider的多个实例

我有来自同一个域(存储在MongoDB中)的数千个URL,需要使用scrapy进行爬网。问题是,蜘蛛爬行第一个URL,完成,然后拾取第二个URL。我怎样才能让它一次抓取多个URL,所有URL都被并行地、独立地抓取 我总是可以多次运行命令scrapy crawl,但我正在寻找一种更复杂的解决方案 欢迎实验想法 您可以在爬行器的start\u url参数中加载Mongo中的所有URL。然后,Scrapy将从该列表中选择URL并同时开始处理它们。您可以在Spider的start\u URL参数中加载M

Scrapy:为每个参数创建一个新项

我是新手。我目前正在尝试扩展我的爬行爬行器,以便它可以从文本文档中接收多个参数(而不是像scrapy crawl crawl5-a start\u url=“argument”那样手动将每个参数输入命令行)。目前,我可以输入一个参数并生成几个项目。但我想就两个问题提供一些指导: 如何为每个参数创建一个项 如何将该项用作从每个参数生成的项的容器 我在这里的目标是模拟多次运行爬行器,同时将每个参数返回的项分开 编辑。。这是我的代码——正如你所看到的,它是thesaurus.com的刮刀 import

scrapy splash不使用CrawlerSpider递归爬行

我已将scrapy splash集成到我的CrawlerSpider进程请求中,规则如下: def process_request(self,request): request.meta['splash']={ 'args': { # set rendering arguments here 'html': 1, } } return request 问题是爬网只在第一个深度呈现URL,

Scrapy 刮痧

我已使用以下链接成功运行了Scrapy与Tor: 但我不能和托尔一起跑 在Scrapy-settings.py中,我将http_代理定向到polipo(8123是polipo端口): 在polipo.config中,我指向tor(9150是tor端口): 这对刮痧很有效。在splash中,它不起作用。但我不得不说,splash或docker使用polipo作为http_代理,就像在scrapy-settings.py中一样。Docker应该以某种方式使用polipo,polipo将指向tor。我

Scrapy 从响应文本获取html

我正在尝试清理一个使用AJAX和Scrapy的网站,我正在发送一个请求,有时我不完全理解执行的结果。这是我现在的代码: class BaseSpider(scrapy.Spider): results = [] def parse(self, response): ... yield Request(url = 'https://www.books.com/ajax_more?book=book1', callback = self.parse_afte

Scrapy 非回拨方法的剩余收益

我试图刮取一个html文件,该文件包含一个json对象和所有必需的测试用例数据,但json的处理在“find”和“parseTestCaseDetails”方法中进行,在该方法中,我迭代地获取测试用例详细信息,最后在“findInterestedFields”中解析,因此,我的要求是将测试用例的细节从层次结构中调用的最后一个方法(即findInterestedFields)生成一个json文件,有可能实现吗 提前谢谢 import scrapy 导入日期时间 导入json 进口稀土 导入集合 导

  1    2   3   4   5   6  ... 下一页 最后一页 共 24 页