草庐IT

python - scrapy 从脚本运行蜘蛛

我想从脚本而不是scrapcrawl运行我的蜘蛛我找到了这个页面http://doc.scrapy.org/en/latest/topics/practices.html但实际上它并没有说明该脚本放在哪里。有什么帮助吗? 最佳答案 简单明了:)只需检查officialdocumentation.我会做一点改变,这样你就可以控制蜘蛛只在你执行pythonmyscript.py时运行,而不是每次你只从它导入时运行。只需添加一个if__name__=="__main__":importscrapyfromscrapy.crawlerimp

离线(本地)数据的 Python Scrapy

我的电脑上有一个270MB的数据集(10000个html文件)。我可以使用Scrapy在本地爬取这个数据集吗?怎么办? 最佳答案 简单的HTTP服务器托管如果你真的想在本地托管它并使用scrapy,你可以通过导航到它存储的目录并运行SimpleHTTPServer(如下所示的端口8000)来提供它:python-mSimpleHTTPServer8000然后只需将scrapy指向127.0.0.1:8000$scrapycrawl127.0.0.1:8000文件://另一种方法是让scrapy直接指向文件集:$scrapycrawl

python - 使用项目字段中的内容重命名 Scrapy 0.24 中下载的图像,同时避免文件名冲突?

我正在尝试重命名我的Scrapy0.24蜘蛛下载的图像。现在,下载的图像以其URL的SHA1哈希作为文件名存储。我想将它们命名为我用item['model']提取的值。Thisquestionfrom2011outlineswhatIwant,但答案是针对以前版本的Scrapy的,不适用于最新版本。一旦我设法使这项工作正常进行,我还需要确保我考虑到使用相同文件名下载的不同图像。因此,我需要将每张图片下载到其自己唯一命名的文件夹中,大概是基于原始URL。这是我在管道中使用的代码的副本。Igotthiscodefromamorerecentanswer在上面的链接中,但它对我不起作用。没有

python - Scrapy 与 Nutch

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion我计划在我目前正在开发的应用程序中使用网络爬虫。我对Nutch进行了一些研究,并使用它进行了一些初步测试。但后来我遇到了scrapy。但是当我做了一些初步研究并浏览了有关scrapy的文档时,我发现它只能捕获结构化数据(您必须提供要从中捕获数据的div名称)。我正在开发的应用程序的后端是基于Python的,我知道scrapy是基于Python的,有些人认为scrapy比Nutch更好。我的要求是从超过10

python - 接口(interface)错误 : connection already closed (using django + celery + Scrapy)

我在Celery任务中使用Scrapy解析函数(有时可能需要10分钟)时得到这个。我使用:-Django==1.6.5-django-celery==3.1.16-celery==3.1.16-psycopg2==2.5.5(我也用过psycopg2==2.5.4)[2015-07-1911:27:49,488:CRITICAL/MainProcess]Taskmyapp.parse_items[63fc40eb-c0d6-46f4-a64e-acce8301d29a]INTERNALERROR:InterfaceError('connectionalreadyclosed',)Tra

python - 我应该创建管道以使用 scrapy 保存文件吗?

我需要保存文件(.pdf),但不确定如何保存。我需要保存.pdf文件并将它们存储在目录中,就像它们存储在我正在抓取它们的网站上一样。据我所知,我需要制作一个管道,但据我了解,管道保存的“项目”和“项目”只是基本数据,如字符串/数字。保存文件是正确使用管道,还是我应该将文件保存在蜘蛛中? 最佳答案 是和否[1]。如果您获取pdf,它将存储在内存中,但如果pdf不够大,无法填满您的可用内存,那么也可以。您可以将pdf保存在蜘蛛回调中:defparse_listing(self,response):#...extractpdfurlsfo

python - scrapy.Item 中的数组字段

我想向scrapy.Item添加一个字段,使其成为一个数组:classMyItem(scrapy.Item):field1=scrapy.Field()field2=scrapy.Field()field3_array=???我该怎么做? 最佳答案 您只需创建一个字段field3_array=scrapy.Field()但是在解析抓取的项目时这样做items['field3_array']=[]items['field3_array'][0]='one'items['field3_array'][1]='two'这样就可以实现了。有

python - Flask和Scrapy如何整合?

我正在使用scrapy获取数据,我想使用flaskweb框架在网页中显示结果。但是我不知道如何在flask应用程序中调用蜘蛛。我尝试使用CrawlerProcess来调用我的蜘蛛,但我得到了这样的错误:ValueErrorValueError:signalonlyworksinmainthreadTraceback(mostrecentcalllast)File"/Library/Python/2.7/site-packages/flask/app.py",line1836,in__call__returnself.wsgi_app(environ,start_response)Fil

python - Scrapy 管道以正确的格式导出 csv 文件

我根据下面alexce的建议做了改进。我需要的是如下图。但是,每一行/行应该是一条评论:包含日期、评级、评论文本和链接。我需要让项目处理器处理每个页面的每个评论。目前TakeFirst()只接受页面的第一次审查。所以10页,我只有10行/行,如下图所示。爬虫代码如下:importscrapyfromamazon.itemsimportAmazonItemclassAmazonSpider(scrapy.Spider):name="amazon"allowed_domains=['amazon.co.uk']start_urls=['http://www.amazon.co.uk/pro

python - 如何让 Scrapy 在日志中根据下载请求显示用户代理?

我在学习Scrapy,一个网络爬虫框架。我知道我可以在Scrapy项目的settings.py文件中设置USER_AGENT。当我运行Scrapy时,我可以在INFO日志中看到USER_AGENT的值。此USER_AGENT在我要抓取的服务器的每个下载请求中设置。但我在thissolution的帮助下随机使用了多个USER_AGENT.我猜这个随机选择的USER_AGENT会起作用。我想确认一下。那么,我如何让ScrapyshowsUSER_AGENT每次下载请求,以便我可以在日志中看到USER_AGENT的值? 最佳答案 仅供引用