Scrapy 为什么刮痧爬虫会停下来?

我已经使用scrapy框架编写了一个爬虫程序来解析产品站点。爬虫在这两个过程之间突然停止,没有完成完整的解析过程。我在这方面做了很多研究,大多数答案表明我的爬虫被网站屏蔽了。是否有任何机制,我可以通过它来检测我的蜘蛛是被网站阻止还是自己停止 下面是spider的信息级日志条目 2013-09-23 09:59:07+0000 [scrapy] INFO: Scrapy 0.18.0 started (bot: crawler) 2013-09-23 09:59:08+0000 [spider

Scrapy 刮痕扭曲。网络错误 twisted.web.\u newclient.ResponseNeverReceived:

我将运行scrapy并获得此异常我猜scrapy的downloader无法同意在与服务器协商期间使用SSL版本。尝试将设置.py设置为'SSLv3'值,如果没有帮助,尝试将其设置为'TLSv1.0'我已经解决了它,因为我启动了VPN,我将关闭它谢谢,我已经解决了它,因为我使用了VPN,所以有一个以前从未见过的错误 twisted.web._newclient.ResponseNeverReceived: <twisted.python.failure.Failure OpenSSL.SSL

ScrapyD内部是否有管道概念?

查看scrapy和scrapyD的文档,似乎可以编写scrape结果的唯一方法是在spider本身的管道中编写代码。我的同事告诉我,还有一种额外的方法可以让我从scrapyD中截取刮取的结果 有人听说过这个吗?如果有,有人能帮我解释一下吗 谢谢 Scrapyd确实是一项服务,可用于通过JSON API计划Scrapy应用程序的爬网过程。它还允许将Scrapy与不同的框架(如Django)集成,请参阅以防您感兴趣 这是Scrapyd的名字 但是,如果您怀疑是否要保存刮片结果,标准方法是在刮片应

如何使用scrapy抓取多级页面?(两级)

在第一页,它很好地删除了title标签中的文本“test1”,但在第二页“test2.html”中没有任何内容 我的剧本: from scrapy.spider import Spider from scrapy.selector import Selector from testscrapy1.items import Website class DmozSpider(Spider): name = "bill" allowed_domains = ["http:/

运行curl时出现Scrapyd 404错误http://localhost:6800/daemonstatus.json

我试图检查服务的负载状态,运行curl时,服务器以 404的状态(无此类资源)。请帮忙 我也有同样的问题。结果证明是Scrapyd文档和Scrapyd分发之间的不一致 在Scrapyd 1.1.0之后添加了daemonstatus.json。() 因此,如果需要守护程序API,则需要使用master分支。并通过python setup.py install安装它。在安装master分支之前,请记住卸载通过pip install scrapyd安装的旧版本

scrapy中间件:数字的含义是什么(例如ProxyMiddleware';:410)?

很抱歉问了一个非常基本的问题,但是410在myproject.middleware.ProxyMiddleware:410中是什么意思?(很明显,没有人谈论它!) 我在图图中没有找到任何关于它的东西 编辑这不是重复的来源:答案说数字用于排序顺序,但没有解释为什么他们使用特定的数字。为什么在我上面的例子中使用400,为什么不使用399或401,这是有原因的吗?或者我们应该粗略地取任何符合顺序的数字 该数字可以是大致符合订单的任何数字,也可以让您灵活地在两者之间安装其他中间件 因此,您可以使用100

Scrapy 选择具有刮擦飞溅和屏幕截图的元素

当使用刮花飞溅,我试图去一个下拉列表,并选择在这种情况下香草。从下拉列表中选择后,我需要截图,我目前正在工作。这是我到目前为止所拥有的 class TestSpider(scrapy.Spider): name = 'test' def start_requests(self): splash_args = { 'png': 1, 'render_all': 1, 'wait': 2,

Python:Scrapy Splash使用爬行蜘蛛递归爬行不工作

我在我的爬行蜘蛛中集成了scrapy splash,它只会爬行呈现开始URL。想知道如何让scrapy splash抓取内部链接。 我一直在互联网上寻找解决方案,但似乎没有一个可行的解决方案 以下是我的代码: import scrapy from scrapy.selector import Selector from scrapy.linkextractors import LinkExtractor from scrapy.spiders import Rule, CrawlSpider

如何使用scrapy跟踪延迟加载?

我试图抓取一个页面,该页面使用延迟加载来获取下一组项目。我的爬虫程序遵循正常链接,但此链接似乎有所不同: 页面: 然后是 但仅当您在浏览器中加载它时。Scrapy不会跟随链接 有没有办法让scray自动跟随第1、2、3、4页?页面跟随虚拟滚动,并且通过api获取数据 https://www.omegawatches.com/de/vintage-watches?p=1&ajax=1 它返回一个json数据,其中包含不同的详细信息,包括html格式的产品,以及下一页是否存在于带有classlin

Scrapy 在向s3铲斗屈服时,无法连接卡盘关闭

程序未连接到\u close功能,未发现任何错误,且蜘蛛代码中的产量项目上传正常(除非“u close”未发生任何情况) 我尝试在设置中删除s3,效果很好(即进入_close功能) 如何修复?尝试下面的代码,它应该可以工作 #-*-编码:utf-8-*- 从刮擦进口信号 从scrapy.xlib.pydispatch导入调度程序 类示例Spider(scrapy.Spider): 名称=‘永远’ 定义初始化(自): dispatcher.connect(self.spider\u关闭,signa

Scrapy-确保我从一个域获取所有页面/如何告诉我没有';怎么办?

我有一只非常普通的蜘蛛,我可以用它来广泛爬行。我给它提供了几百个起始URL,限制了允许的_域,让它变得疯狂(我遵循建议的“避免被禁止”措施,如自动节流、无cookie、旋转用户代理、旋转代理等) 一切都进展顺利,直到一周前,这批起始URL包括一个相当大的已知域。当时,幸运的是,我正在监视刮取,并注意到大域刚刚“被跳过”。在调查原因时,域名似乎意识到我使用的是公共代理,并将我的初始请求发送到了'https://www.exampledomain.com/,因此爬行器没有找到任何要跟踪的URL,因此

Scrapy 刮毛圆';无法从第一页获取结果

这是我的蜘蛛: from scrapy.contrib.spiders import CrawlSpider,Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.selector import HtmlXPathSelector from vrisko.items import VriskoItem class vriskoSpider(CrawlSpider): name

scrapy框架:登录scrape导航

如何进行表单登录,然后使用scrapy处理该会话 例如考虑一个具有登录验证的网站,它有三个与登录会话链接的不同页面。 因此,使用scrapy,首先登录,然后在主页中刮取一些,然后按照主页中可用的特定链接,点击链接并从该页面刮取。然后再次回到主页,然后点击另一个链接,依此类推。 我有一个文件ccbank_spider.py,下面是内容 class LoginSpider(BaseSpider): #some code #for hitting and parsing of the Acco

Scrapy递归地抓取网页并将内容保存为html文件

我正在使用scrapy提取网页标签中的信息,然后将这些网页保存为HTML文件。例如,本网站有一些与司法案件相关的网页。我想转到每个链接,仅将与特定司法案件相关的内容保存为HTML页。例如,转到此页,然后保存与案件相关的信息 是否有一种方法可以在scrapy中递归执行此操作,并将内容保存在HTML页面中是的,您可以使用scrapy执行此操作,这将有助于: from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib

Scrapy:如果某些条件适用,如何重新下载已缓存的URL

我在scrapy的缓存后端中存储了大量http数据。某些页面包含错误数据。这些URL需要重新安排,以便在下次运行scrapy时下载 我提出了修改scrapy附带的虚拟缓存策略的想法。不幸的是,这似乎不起作用 有人能看到方法“是否缓存”\u“响应”\u“刷新”中的错误吗 我认为这里的答案是,你的内容很可能被压缩或压缩了 试一试 不能说这个解决方案是多功能的,但它很可能在您的情况下起作用 import os import cPickle as pickle from time import time

Scrapy 刮痧初学者得到例外

我需要帮助。我想为一个特定的网站做一个爬虫程序(DewriteJournal)。我想从站点获取这些数据,为我创建一个控制台输出,因为我主要在控制台上工作,不想经常切换。另一点是我想将数据推送到数据库中(sql等没有问题)。但不知何故,我只是在尝试执行爬虫程序时显示了这一点,我认为教程并没有真正的帮助: 2016-10-05 10:55:23 [scrapy] INFO: Scrapy 1.0.3 started (bot: undermine) 2016-10-05 10:55:23 [scra

Scrapy 刮痧';s sitemapcrawler在爬网之前处理链接

是否可以将规则与sitemapcrawler一起使用?有些站点的旧站点地图使用http链接而不是https。每次我抓取它们时,所有链接都会被重定向(301),这将在它们(和我)这一边产生无用的流量。我认为最简单的解决方案是在链接被爬网之前对其进行处理,并将方案从http更改为https 我可以用规则来做吗?还是应该使用默认的中间件,让它基本上解析所有URL两次?忽略重定向可能是一个解决方案,但我发现它“更脏”。Scrapy sitemapcrawler具有规则属性 见: 您可以添加将过滤非ht

Scrapy 刮痧+;飞溅(码头工人)问题

我在AWS Ubuntu服务器上安装了scrapy和scrapy splash。它可以正常工作一段时间,但几个小时后,我会开始收到这样的错误消息 Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.5/site- packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks result = result.throwExcep

Scrapy 使用相同的spider来解析详细信息页面和分页页面

我有一个刮板,使用链接提取器通过分页和解析详细页面,一切正常。示例代码如下: class SampleSpider(CrawlSpider): name = 'sample' start_urls = ['https://www.some-pagination-page.com'] rules = ( Rule(LinkExtractor(restrict_xpaths='//*[contains(@class, "paging-next")]')),

使用scrapy';时更改默认浏览器;s shell视图函数

在一个粗糙的外壳上,当我尝试使用查看(响应)功能时,它会打开Visual Studio代码,而不是打开浏览器。如何在浏览器上打开它 我了解到webbrowser是用于查看页面的库,我可以设置BROWSER变量以更改其默认值。在Linux Mint系统上,我应该将BROWSER变量更改为哪个值,以使view命令打开firefox?在进一步搜索后自己找到了答案 BROWSER变量的值应为/usr/bin/firefox 因此,在我的例子中,将以下行添加到我的~/.bashrc文件中就成功了: 导出浏

Scrapy CrawlSpider-开始URL的错误返回

我正在将CrawlSpider与具有errback的规则链接抽取器一起使用 我正在使用parse_start_url来解析start_url,但是我也需要errback来解析它们 class CS(CrawlSpider): name = "CS" rules = (Rule(LinkExtractor(allow=[], deny=[]), follow=True, callback='my_parse', errback='my_errback'),)

Scrapy 刮壳XPATH不工作

我在Chrome的XPATHHelper和Firefox的XPather中尝试了以下XPATH,它总是在google搜索结果页面中显示所有代码片段(即搜索结果的描述),但在Scrapy shell中不起作用: //span[@class='st'] 如果有关系,我会像这样调用scrapy shell: scrapy shell "http://www.google.com/search?q=myQuery" 我说hxs.select(“//span[@class='st']”)。这总是返

Scrapy 从表中删除空字段

我正在尝试构建一个解析器,它将从包含药物信息的表中提取数据,如药物名称、形式和价格。问题是这里缺少一些值,所以当我刮取数据时,顺序会被打乱。请看下面的内容,以便更好地理解问题 表格格式: +---------+----------+-------+ | name | form | price | +---------+----------+-------+ | aspirin | 3 pills | 1 | | aspirin | 5 pills | | |

如何使用scrapy抓取多个域

我有一个项目,其中我必须抓取大量不同的网站。所有这些站点爬行都可以使用同一个爬行器,因为我不需要从它的主体页面中提取项目。我认为的方法是在spider文件中参数化要爬网的域,并调用scrapy crawl命令作为参数传递域和启动URL,这样我就可以避免为每个站点生成一个spider(站点列表将随着时间的推移而增加)。我们的想法是将其部署到运行scrapyd的服务器上,因此我遇到了几个问题: 这是我能采取的最好办法吗 如果是这样的话,如果我使用不同的参数多次调度同一个爬行器,是否会出现并发问题

当Scrapy项目完成时发送电子邮件

所以我在文档中重新阅读了这些内容,但仍然无法理解我应该在项目中的哪些文件中插入这些行 from scrapy.mail import MailSender mailer = MailSender() mailer.send(to=["someone@example.com"], subject="Some subject", body="Some body", cc=["another@example.com"]) 您可以在爬行器关闭后使用类似这样的信号发送电子邮件。但我不确定这是否是最好的

Scrapy 在不修改项目的情况下配置扩展

我是否可以在不改变源代码的情况下,在scrapy项目中添加一个 spider将由系统用户提供,作为egg文件。我的要求是将爬行器抓取的数据推送到消息总线 但是,我不能很好地要求用户在项目中包含消息总线push extension.py。相反,我想监听ext.item\u scraped信号,并将该数据推送到我的服务中 我在scrapy.cfg中试过这个: [settings] default = tutorial.settings [extensions] tutorial.ext.Spider

Scrapy 如何在Spider中访问'request_seen()'?

我有一个蜘蛛,我想检查我要安排的请求是否已经存在 我不希望任何方法检查下载/蜘蛛中间件内部,我只想检查蜘蛛内部 有什么方法可以调用该方法吗?我用管道做了类似于您的方法。下面的命令是我使用的代码 您应该指定一个标识符,然后使用它检查是否可以看到它 class SeenPipeline(object): def __init__(self): self.isbns_seen = set() def process_item(self, item, spider):

Scrapy 需要帮助才能找到使用xpath()从头部获取信息的方法[已解决]

我知道如何获得响应 问题是我必须从列表中获取一个特定的脚本,但我不知道如何执行。列表是随机的,所以不能只说list\u foo[foo1],因为它交换了它的位置,http头是这样的 head link rel="canonical" href=" / meta name="robots" content="noarchive" / script data-script="TagManagerDataLayer" .... /script script data-s

Scrapy 我可以使用start_url来刮取url列表吗?

我有一个url列表,我想从中获取数据。它来自一个我想更新的数据库,但我不确定如何继续 import scrapy import sqlite3 from datetime import datetime, timedelta class A1hrlaterSpider(scrapy.Spider): name = 'onehrlater' allowed_domains = ['donedeal.ie'] timenow = datetime.now() del

Scrapy startproject许可证错误

我正在尝试学习网络抓取和创建我的第一个WebSpider,但我在第一步就犯了这个错误。 当尝试创建项目时,此消息将与“我的防病毒软件”中的弹出窗口一起显示,表示该操作已被阻止。 在安装/启动Scrapy之前,我需要配置什么吗 我试着在StackOverFlow中查看类似的问题,但没有发现任何有用的东西 提前谢谢。 您没有对该目录的写入权限。。检查您的访问级别在文件夹属性=>安全性上降低,并为所有用户授予了写入权限,但仍不起作用。

Scrapy 管道上的刮擦式停机爬行器

有没有办法关闭管道上的碎屑爬行?我的pipline处理URL并将它们添加到列表中。当列表达到指定数量时,我想关闭爬虫程序。我知道有raiseclosespider(),但它似乎只有在从spider调用时才起作用。是的,这是可能的。您可以调用Crawler.engine.close\u spider(spider\u名称,原因) 有

Scrapy 如何禁用或更改ghostdriver.log的路径?

问题是直截了当的,但一些上下文可能会有所帮助 我试图在使用selenium和phantomjs作为下载程序的同时部署scrapy。但问题是,它一直说,在尝试部署时,权限被拒绝。所以我想更改ghostdriver.log的路径,或者干脆禁用它。看着phantomjs-h和ghostdriver github页面,我找不到答案,我的朋友谷歌也让我失望 $ scrapy deploy Building egg of crawler-1370960743 'build/scripts-2.7' does

Scrapy next href随以rel=";“下一步”;

我在“刮擦”的例子中找到了这一行 next\u page=response.css('div.prev-post>a::attr(href')).extract\u first()您正在将css选择器与xpath选择器组合 使用css: 'a[rel="next"]::attr(href)' 使用xpath '//a[@rel="next"]/@href' 您正在将css选择器与xpath选择器相结合 使用css: 'a[rel="next"]::attr(href)' 使用xpath

Scrapy,使用自定义格式在HTML电子邮件中发送已删除的项目

一些背景 我正在刮页,每页有25个添加 如果有超过25个添加项,则表示您有下一页的“下一步”按钮,依此类推 每个添加都可以单独打开,以查看更多信息,但我没有这样做,因为我需要的所有信息都在添加一起列出的页面上 我正在制作一个程序,收集昨天的所有添加内容,然后发送到电子邮件 基本理念是,此人不需要每天检查新添加的内容,但添加的内容将通过电子邮件发送给他。 问题是如何将其变为刮屑? 我已经完成了抓取,工作正常,唯一要做的就是用自定义格式将这些项目发送到电子邮件。 通过自定义格式,我的意思是所有添加都

Scrapy自定义函数无法激发Scrapy.Requests

似乎产生的请求很少。不能在类似以下代码的函数中激发请求。 有人能帮我清理或者帮我开火吗? 非常感谢你的帮助 class MySpider(CrawlSpider): ... def start_requests(self): yield scrapy.Request(url, callback=self.parse_items) ... def parse_items(self, re

如何使用requests或scrapy从opensubtitle.org下载zip文件

我有zip文件下载url,链接如下: . 我请求了一个包含所需标题的URL,但仍然无法下载zip文件。它被重定向到旧的电影页面,或者下载不相关的zip文件内容。我知道有API可用,但我需要通过脚本来完成,而不是API或selenium 我尝试了request和scrapy-get方法,但仍然无法下载正确的zip文件 headers = { "authority": "dl.opensubtitles.org","Connection": "keep-alive", "user-agent":

Scrapy 在虚拟机上运行python程序

我创建了GCP虚拟机(UBTO)。我安装了python和scrapy。 我想从那里运行spider,scrapy crawl test-o test1.csv 我从gcp打开终端并运行spider(已运行),至少需要3个小时 如何确保退出终端(浏览器)时脚本将继续。您可以使用nohup确保爬网继续: nohup scrapy crawl test -o test1.csv & 当您注销时,爬虫程序将继续运行,直到完成。最后的&将使流程在后台执行。 要将输出重定向到日志文件,可以按如下方

Scrapy 为什么运行特定的spider不会';不工作(但运行所有蜘蛛)

我创建了一个scrapy项目,希望有两个独立的spider(使用两个不同的名称): 我试图只运行带有命令scrapy crawl nameofspider的“listing_enseigne.py”spider,但这个命令似乎也运行另一个spider(来自文件“detail_enseigne.py”) 但是,当查看scrapy文档时,似乎该命令应该只运行名为的spider 如果有人能帮我。。谢谢 编辑1: 事实上,scrapy不会同时运行这两个程序,但它会执行在实际爬行程序之前运行的所有爬行程

Scrapy 刮痧粉';在python中,不要在屈服之后停止

我正在尝试创建一个爬行器,它可以遍历一定数量的起始URL,如果生成的页面是正确的,我将生成另一个请求。问题是,如果我尝试不产生第二个请求,爬行器将直接停止。如果我答应第二个请求,就没有问题了 以下是相关代码: def start_请求(自我): URL=['https://www.hltv.org“+玩家对玩家在self.hashPlayers中] 打印(len(URL)) 对于url中的url: return[scrapy.Request(url=url,callback=self.parse

Scrapy 抓取有限数量的页面

我正在为一个论坛写一只蜘蛛。我正在尝试递归地抓取某个部分的某些页面。因此,我制定了以下规则: rules = ( Rule (SgmlLinkExtractor(allow=('&order=desc&page=\d'),restrict_xpaths=("//td[@class='navpage']/a")) ,callback='parse_items', follow= True),) 是否可以设置页面限制,以便蜘蛛可以抓取有限数量的页面?例如,从第1页爬

Scrapy KeyError:'未找到蜘蛛:。。。“在云9 IDE中

我阅读了一些其他类似的堆栈溢出线程,这些线程都是针对那些在运行spider时遇到类似问题的人的,但我认为我在Cloud 9 IDE上的设置有点不同,或者我遗漏了一些东西。下面是我的树: mikeumus@scrapy-phishtank:~/workspace $ tree . ├── README.md ├── db.sqlite3 ├── manage.py ├── scrapetank │   ├── scrapetank │   │   ├── __init__.py │   │

Scrapy 我可以从响应中提取请求表单数据吗?

我正在使用scrapy刮取一些数据,我想知道请求-响应存储了多少数据 我的具体问题如下代码所示: def parse(self,response): r = FormRequest(url=url1, formdata={somedata}, callback=parse2) #is this line necessary if I want the formdata being attached? r.meta['formdata'] = formdata

Scrapy返回未实现错误

我正在Hostelworld.com上运行以下scrapy spider以检索: 第一页上的大陆、国家和国家URL 跟踪国家url后来自给定国家的城市列表 def parse_page1(self, response): for sel in response.xpath('//li[@class="accordion-navigation"]//ul[@class="small-block-grid-2 medium-block-grid-4 large-block-grid-6"]

在scrapy redis中,关闭前的调度程序\u IDLE\u不起作用

我在\u CLOSE=10之前设置了调度程序\u IDLE\u,但是爬行器没有关闭并保持在空闲状态 我在Redimixin类中重写了scrapy redis的spider_idle函数: def spider_idle(self): self.schedule_next_requests() # raise DontCloseSpider 现在爬行器将关闭,但无法完全使用所有的起始URL 我是否需要自己检查redis中的start_URL和请求,以确定是否需要提升DontClo

Scrapy 雅虎财经是否禁止网络垃圾?

中的robots.txt表示: 雅虎财经是否禁止网络垃圾? 什么是雅虎财经网站不允许的? 我们可以从雅虎的robots.txt文件中推断出什么 在robots.txt文件中没有任何内容明确禁止您删除雅虎财经,但是雅虎财经受其管辖 本文档最相关的部分基本上是说,您不应该做任何会干扰他们服务的事情。现实地说,这意味着如果你打算从雅虎财经网站上获取数据,你应该负责任地这样做(不是成千上万的请求,因为这会很快让你被禁止) 这就是说,web抓取通常效率很低(因为您重新加载整个HTML页面只是为了以编程方式

Scrapy 当DefaultHeadersMiddleware存在时,为什么要使用UserAgentMiddleware?

DefaultHeadersMiddleware可以做所有的UserAgentMiddleware可以做什么?那么UserAgentMiddleware的含义是什么?我相信这只是为了简单起见。 用户代理是一种非常常见的更改,因此能够通过User\u-agent设置或spiderUser\u-agent属性设置它有时会非常有用 例如,从命令行更改用户代理非常简单: scrapy <command> -s USER_AGENT=something scrapy-s USER\u AGE

Scrapy 从amazon上抓取5000多条评论

在抓取亚马逊的评论时,我总是在5000条评论上碰壁,即使该产品有40000条评论。有没有办法越过这个障碍并刮取更多的页面?要在直接从搜索结果刮取时获得更多页面,可以使用过滤器将搜索划分为更小的部分。例如,具有星级评级的评论可能首先搜索一个星级,然后搜索两个星级,等等。这当然不能保证所有结果,但会增加您的机会。有些过滤器可能更多,但更难实现,例如标记或用户名 或者,通过他们的计划直接访问数据和/或成为附属机构

如何将参数字典作为Scrapy中的蜘蛛参数传递?

刮擦爬网链接-一个“{”URL:“,”包含“:”hello“,”Xpath“:”hiii“}”首先需要为字典中的pass参数调用一个变量。在这里,我假设您想从这个字典中获取url url_Scraper = {"urls":"https://www.xyz.in","contains":"hello","Xpath":"hiii" } print(url_scraper["urls"]) 您可以从字典中获取任何特定元素。您只需要将特定的字典键放在变量后面的方括号内。为了更好地理解,请参见第二

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