使用Scrapy获取iTunes播客数据

我正在尝试使用Scrapy获取iTunes播客数据,但是在使用Scrapy中的response.xpath从iTunes RSS提要中获取播客数据时遇到问题 我尝试过使用请求,效果很好 import requests url='https://itunes.apple.com/us/rss/toppodcasts/limit=200/genre=1302/explicit=true/json' r=requests.get(url) data=r.json()['feed']['entry'

Scrapy 了解详细的调试信息

我想在做刮擦跑步时了解下一行中单词referer的含义 2021-01-05 19:08:08 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.eaton.com/us/en-us/catalog/services/eaton-ups-and-battery-training/ups-first-responder-training/eaton-9315-training.html> (referer: https

Scrapy 刮擦停止条件

说明性场景:创建了一个Scrapy spider,用于从各种餐厅网站的start\u URL列表中刮取餐厅菜单。一旦找到每个餐厅的菜单,就不再需要继续在特定的餐厅网站上爬行。爬行器(理想情况下)应该中止该start\u url的队列,然后移动到下一家餐厅 一旦满足停止条件,是否有方法阻止Scrapy对其请求队列的剩余部分*每个开始url*进行爬网?我不认为CloseSpider异常是合适的,因为我不想停止整个spider,只想停止当前start\u url的队列,然后转到下一个start\u u

scrapy的crontab任务

我在crontab上配置了一个scrapy任务,但它没有运行。但是,当我手动运行时,它可以工作。这是我试过的 * * * * * my_user cd /var/www/html/path/spiders/ && scrapy crawl radio 这是我有这个权限的“无线电”文件 -rwxr-xr-x 1 my_user my_user 161 mar 27 10:09 __init__.py -rw-r--r-- 1 my_user my_user 148

Scrapy 如何使用yield函数从多个页面中提取数据

我正试图从亚马逊印度网站上搜集数据。在以下情况下,我无法使用yield()方法收集响应并解析元素: 1) 我必须从产品页面转到评论页面 2) 我必须从一个复习页面转到另一个复习页面 代码流: 1) customerReviewData()调用getCustomerRatingsAndComments(响应) 2) GetCustomerRatings和Comments(响应) 查找审阅页面的URL,并使用getCrrFromReviewPage(request)作为回调方法调用收益请求方法,

scrapy itemloader中的更改响应

是否有方法更改项目加载器中使用的响应,例如,我正在解析两个页面,并在meta中传递我的_项目,项目加载器中的响应是第一个(我最初定义它的位置)。 我当前正在使用my_item.add_value('price','response.xpath('//p[@id=“price”])。extract_first()以通过此操作,因为我无法使用my_item.add_xpath('price','//p[@id=“price”]),因为响应来自初始页面 my_item = ItemLoader(ite

爬行RSS:Scrapy未返回任何数据

这是我爬网RSS BBC的代码,但它没有返回任何内容 我在Chrome中使用“Inspect”以交互方式检查了xpath,看起来还可以 import scrapy class BbcSpider(scrapy.Spider): name = "bbc" allowed_domains = ["feeds.bbci.co.uk/news/world/rss.xml"] start_urls = ["https://feeds.bbci.co.uk/news/world/

Scrapy 为什么我没有收到start_请求的响应?

我使用start_请求从sqlite数据库中获取URL列表。 但是当我运行代码时,我没有得到任何响应 这是密码- import scrapy import sqlite3 from datetime import datetime, timedelta import json class A1hrlaterSpider(scrapy.Spider): name = 'onehrlater' def start_requests(self): timenow = dat

scrapy教程:无法运行scrapy crawl dmoz

我问了一个新问题,因为我知道我在上一个问题中不够清楚。 我试图遵循scrapy教程,但我被困在关键的一步,即“scrapy craw dmoz”命令中。 代码如下(我在python shell中编写了该代码,并将其保存为键入.py扩展名): 我使用的目录应该可以,请在树下找到: . ├── scrapy.cfg └── tutorial ├── __init__.py ├── __init__.pyc ├── items.py ├── pipelines.py

Scrapy返回的内容是否有字符限制?

如果我和你一起走进这个脏兮兮的壳里 scrapy shell http://www.tripadvisor.com/Hotels-g60956-San_Antonio_Texas-Hotels.html 打电话 hxs.select('//title/text()').extract 我明白了 data=u'San Antonio Hotels: Compare 345 Hotels i' 这是40个字符数的空格。这是一个超出Scrapy的限制吗?我应该在未来的unicode交易中也注意这

Scrapy 在刮擦之间保存饼干

我每天都在从一个网站收集数据。每天我运行scrapy,第一个请求总是被重定向到网站主页,因为scrapy似乎还没有设置任何cookies。然而,在第一次请求之后,scrapy收到了cookie,从那时起就可以正常工作了 然而,这使得我很难将“scrapy view”等工具用于任何特定的url,因为该网站将始终重定向到主页,而这正是scrapy将在我的浏览器中打开的内容 scrapy是否可以保存cookie,并指定在所有刮板上使用它?我可以指定将其与scrapy view等一起使用吗?没有内置机制

Scrapy 请求元在python中是如何工作的

在scrapy中,如果我使用大型meta发出请求。 例如。 请求(url=url,meta=some\u meta) 假设某个元是某个大的dict。那么,它如何影响请求/响应时间呢?如果它被映射到内存以供参考,而不是发送到url端点,那么它是如何完成的呢?。我是scrapy的新手,我搜索了此信息,但没有找到任何信息。元选项用于根据每个请求将配置设置传递给scrapy组件,但不一定直接映射到http请求 有一个默认扩展接受的元参数列表: 例如,如果您传递meta={'dont_retry':T

Scrapy ImportError:缺少对象文件libiconv.so.2

我正在尝试文档(第5页)中给出的QuotesSpider示例,但我很难让它运行。我在根环境中安装了来自conda的scrapy。我在Ubuntu 14.04,64位机器上。只要我使用以下命令运行给定的代码段: $ scrapy runspider quotes_spider.py -o quotes.json 我得到以下错误: 回溯(最近一次呼叫最后一次): 文件“/home/rip/miniconda2/bin/scrapy”,第4行,in 导入scrapy.cmdline 文件“/home

Scrapy 作为元组而不是列表输出的零散项

无论出于何种原因,所有项都以元组的形式返回。不知道我错过了什么。在所有其他spider和项目中,它只是一个列表(当我使用extract()时) 这是我的蜘蛛代码 def parse(self, response): inspect_response(response, self) a = response.xpath('//table//tr') for i in a: item = CosdnaExtItem() item['name'

Scrapy Splash返回多个html快照时出现问题

我尝试使用splash脚本返回多个html页面(在一个响应中,如文档中所示),并从中提取链接。但是我发现在response.text和response.body中,只要返回了多个页面,html内容就会改变。response.data的情况并非如此,它工作正常。为什么会这样 我在与文档中相同的代码(和网站)上尝试了这一点-(来自后面的部分,来自多个html快照的示例) 这是我的启动请求--> lua脚本如下所示--> 结果是: response.data--> {u'html':u'\n\n\n黑

Scrapy 如何从API中提取json,而不是从多个页面中提取json?(发痒的)

我试图从MastodonAPI(用户id号)获取json用户信息。问题是每个页面一次只存储一个用户信息,但是我想一次收集所有信息。有没有办法按数字顺序收集json文件(https://mastodon.online/api/v1/accounts/{1,2,3,4,…})然后将其全部存储在一个json文件中 我一直在四处寻找答案,每次我用一个和我的问题相似的答案,它都不起作用。如果有人能帮上忙,那就太好了,我整天都在尝试 文件 “到目前为止你都尝试了什么?”Samsuli修改了一些东西,比如ap

Scrapy 刮擦式链接抽取器不工作

有问题与我的刮擦爬虫以下链接。下面是我的代码。我希望它基本上转到YouTube页面,拉取twitter链接,然后调用parse_page3并拉入信息,但现在,只有parse_page2提取部分工作 谢谢! 埃里克 如果要使用规则s和链接抽取器s,则需要使用 替换: class YTSpider(scrapy.Spider): 与: 谢谢你。我是否需要更改在终端中输入的内容以执行它?scrapy crawl youtube-o items.json是我目前正在使用的。还是很难让它工作 class

Scrapy 爬网整个网站,除了特定路径下的链接

我有一只好斗的蜘蛛: from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor class ExampleSpider(CrawlSpider): name = "spidermaster" allowed_domains = ["www.test.com"] start_urls = ["ht

Scrapy 缩进错误:应为缩进块,刮痕

career@careercrawler:~/stack/stack$scrapy crawl stack 回溯(最近一次调用上次):文件 “/home/career/.local/bin/scrapy”,第11行,在 sys.exit(execute()) 文件 “/home/career/.local/lib/python2.7/site packages/scrapy/cmdline.py”, 第141行,执行中 cmd.crawler_process=CrawlerProcess(设置)

Scrapy 使用刮痧时如何避免禁令

我经常被禁止访问一个网站,我在scrapy中设置了download_delay=10,我尝试了一个包,然后我尝试了实现tor和polipo,根据这个,配置是可以的。但在再次跑了1/2次之后,我被禁止了!有人能帮我吗 注意:我也想试试,但无法激活 单击时使用延迟 非tor-来自同一地址的所有连接-不正确,在多次访问后轮换代理 查看这篇文章-你应该看看上面写的内容 在处理这类问题时,这里有一些要记住的提示 地点: 从浏览器中的已知用户代理池中旋转用户代理 (谷歌搜索以获得他们的名单) 禁用Coo

Scrapy 飞溅内存限制(刮擦)

我从docker开始。 我为splash和scrapy创建了大lua脚本,然后运行时我发现了问题: Lua error:gc元方法中的错误(/app/splash/Lua\u modules/sandbox.Lua:189:脚本使用了太多内存 如何为splash增加内存?不幸的是,从splash 2.3.2开始,没有内置的方法来提高这些限制。限制在这里是硬编码的:-您可以更改该值,然后通过运行Docker build-t splash来重建Docker映像。从splash源代码签出,然后使用此映

将svg元素作为下一步按钮的Scrapy LinkedExtractor

我使用的爬行器递归跟踪链接,使用链接提取调用下一页,如: rules = (Rule(LinkExtractor( allow=(),\ restrict_xpaths=('//a[contains(.,"anextpage")]')),\ callback='parse_method',\ follow=True), ) 我已经应用了这个策略来递归地抓取不同

我是否正确使用scrapy redis来抓取大量URL?

我对分布式scrapy爬行的世界还不熟悉,但我发现了scrapy redis并一直在使用它。我在raspberry pi上使用它来抓取大量推送到redis的URL。我一直在做的是在Pi中创建多个SSH会话,然后在Pi中运行 scrapy crawl myspider 让蜘蛛“等待”。然后启动另一个SSH并执行redis cli lpush“我的链接”。爬虫然后运行,尽管我不确定它们实际运行的并发性如何 我希望这是明确的,如果没有请让我知道,我可以澄清。我真的只是在实现了scrapy redis的

Scrapy 如何使用portia从html中获取“关键字”`

现在我想从网页上抓取关键词meta和description,如下所示: <html> <head> <title>test page</title> <meta name="keywords" content="A,B,C"> <meta name="description" content="the description a page"> .... 我昨天在谷歌上搜索过,但不知道,请给我一些建议。你甚至不需要scrap

对lxml的scrapy响应选择器

事实上,我详细阅读了这个问题。 但在我的项目中,有几十个爬虫程序使用scrapy选择器。将scrapy逐行转换为lxml将花费我们很多时间。因此,我尝试编写一些兼容的代码来迁移爬虫 class ElemList(列表): 定义初始化(self,元素列表=[]): 超级(ElemList,self)。\uuuu初始化(elem\u列表) def xpath(self,xpath_str=”“): res=[] 对于elem in self: 尝试: e=elem.xpath(xpath\u str

在scrapy中创建嵌套项

我是scrapy的新手,我正在尝试从网站中获取以下格式的内容: { "book": { "title": "xyz,", "chapters": { "title": "xyz", "link": "xyz", "articles": [ { "article_name": "xyz", "

为scrapy设置Crontab

我正试图设置一个crontab来刮东西。到目前为止,我写了 23 18 * * * cd PycharmProjects/untitled/Project1 && scrapy crawl xx -o test.csv 但当我这样做时,我得到了: /bin/sh: scrapy: command not found. 我该怎么办? 我试着在我的mac电脑里找到了刮痧,但找不到。但是我可以从终端运行crontab任务的第二部分。因为crontab没有为您设置PATH变量,所以它

Scrapy Twitsted ValueError:Raspian拉伸上的ECC曲线未知

我想用我的Raspberry Pi 3,运行Rapian Stretch进行网页抓取项目。对于Pyton,我使用berryconada分布。 当我运行我的蜘蛛时,我会 ValueError: Unknown ECC curve 在我的笔记本电脑(Xubuntu 16.04)上,一切正常。也许我需要安装一个额外的库或什么 在完全回溯之下 Traceback (most recent call last): File "/home/pi/berryconda3/lib/python3

Scrapy不会在某些选择器中提取文本

我正在使用Scrapy爬行一个网站,但当我选择某些选择器时,它不会提取其中的文本 该网站是 不提取文本的选择器包括: response.css('#informacionmedicos').get() response.css('#divsinonimos').get() 它们都显示了各自的html代码行,但我看不到DOM中显示的文本(既不在html行中,也不使用::text属性)。知道发生了什么吗 感谢您,Scrapy不适用于呈现的DOM,而适用于纯源HTML。在大多数浏览器中,您可以使用C

Scrapy 如何下载芹菜中的刮痧文件?

我需要下载一个大文件(+/-100MB)。如果我将其作为脚本运行,则一切正常,但当它由芹菜任务执行时,我有以下日志: [INFO/ForkPoolWorker-1] Spider opened [INFO/ForkPoolWorker-1] Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) [DEBUG/Process-1:1] Crawled (200) <GET downloading_file_url

Scrapy 动态刮擦设置

我有一个包含多个蜘蛛的单一Scrapy项目。此项目位于scrapyd实例上。 我希望能够动态更改projects settings.py文件中的设置(例如DOWNLOADER\u middleware) 是否可以在向scrapyd实例发送请求时更改这些设置。请注意,我不想创建多个项目,因为这将导致在项目之间重复公共代码 谢谢您可以将参数传递给scrapyd并使用-d参数更改设置 curl http://localhost:6800/schedule.json -d project=myproje

Scrapy 响应在何处转换为其子类之一?

我正在尝试编写一个downloader中间件,它忽略没有预定义元素的响应。但是,我不能在中间件中使用HtmlResponse类的css方法,因为此时响应的类型只是response。当它到达spider时,它是一个HtmlResponse,但是现在已经太晚了,因为我无法对中间件状态执行某些操作 响应的最终类型集在哪里?如果看不到中间件的代码,就很难判断到底是什么问题 但是,下面我的中间件得到一个HtmlResponse对象: class FilterMiddleware(object):

无法远程登录到scrapy

我有一个爬虫运行了几天。我想暂停爬虫程序,以便在系统上执行其他操作。粗略的文档说,这可以使用telnet控制台完成,但我无法登录到telnet控制台。以下是系统中运行的进程: [root@xxx tmp]# telnet localhost 6073 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused [root@xxx tmp]# ps aux | grep scrapy root

scrapy shell和spider之间相同xpath查询的奇怪结果。为什么?

请原谅我的noob问题,因为我是一个初学者 我在scrapy shell和我的spider使用相同的xpath查询时遇到了一个奇怪的区别。蜘蛛被设置为跟随“下一页”链接,然后解析结果 查询: response.xpath('//div/div/span/a[starts-with(.,"Next")]/@href') 蜘蛛代码: import scrapy from tutorial.items import DmozItem class DmozSpider(scrapy.Spider)

Scrapy 从表行拖动数据

我正在尝试使用Scrapy从该页面中提取数据: 爬行器将抓取多个页面,但为了保持简单,我在这里排除了分页代码。问题是,我希望在每页上刮取的表行数每次都可能改变 因此,我需要一种从页面中删除所有表数据的方法,不管它有多少个表行 首先,我提取了页面上的所有表行。然后,我创建了一本空白字典。接下来,我尝试循环遍历每一行,并将其单元格数据放入字典 但它不工作,并且返回一个空白文件 知道怎么了吗 # -*- coding: utf-8 -*- import scrapy class Test1Spid

Scrapy:如何从a<;中提取属性值;span>;

查看推特:www.Twitter.com/Twitter 您将看到跟随者的数量显示为57.9M,但如果将鼠标悬停在该值上,您将看到跟随者的确切数量 这在源中显示为: <span class="ProfileNav-value" data-count="57939946" data-is-compact="true">57.9M</span> 我正试图使用上述方法提取属性“数据计数”: def parseTwitter(self, response): company_n

使用scrapy/xpath提取货币值

尝试使用scrapy从一些html中获取货币值。代码为 links = hxs.select('//a[@class="product-image"]/div[@class="price-box"]//span[@class="price"]/text()').extract()') 还有HTML <div> <span> <sub> <li class="item first"> <a href=

scrapy 0.16,响应没有属性选择器xpath()

我在谷歌上搜索过,也看到了关于堆栈溢出的问题,但没有任何效果。我经历过 另外,请阅读scrapy.selector导入HtmlXPathSelector的建议 但是什么都没用 response.body和response.headers工作正常,但是response.selector和response.xpath()给出错误,表示响应对象不存在此类属性 我也无法导入选择器,因为在scrapy目录层次结构中没有选择器(不知道为什么) 我正在使用SCRAPY 0.16(使用Django Dyn

Scrapy 阻止不需要的项目被打印到屏幕上的方法

当您从Python Shell或命令行运行Scrapy程序时,您会在屏幕上打印以下项目: c:\Python27\webscraper2\webscraper2>scrapy crawl mrcrawl2 2014-08-28 00:12:21+0100 [scrapy] INFO: Scrapy 0.24.4 started (bot: webscraper2) 2014-08-28 00:12:21+0100 [scrapy] INFO: Optional features avail

Scrapy:将用户代理更改与ip地址更改同步

我正在考虑与Scrapy一起使用Tor和用户代理切换器。这与关于这个主题的其他指南类似。Tor大约每10分钟更改一次ip地址。中间件会根据每个请求更改用户代理 我想将用户代理更改与ip地址更改同步。为了实现这一点,我需要在Scrapy发送请求之前执行一些代码。代码将检查自上次请求以来ip是否已更改,如果已更改,则更改用户代理。如果ip没有改变,它将使用相同的用户代理。我还没有找到在执行周期的正确位置调用此代码的方法 想要进行此更改的原因是,在我正在抓取的站点上,具有不同用户代理的多个请求来自同一

Scrapy:如何遍历基于AJAX的导航?

我正在穿越。在这个javascript:ctrl.set\u pageReload(1)函数中,进行一个AJAX调用,然后加载页面数据。我如何编写我的规则(LinkExtractor()。来进行遍历,或者有其他方法吗?什么是AJAX?它只是一个使用GET或POST方法对链接的请求 可以在“检查图元”视图中进行检查 单击您正在谈论的按钮,然后查看AJAX将走向何方 另外,不要通过规则(LinkExtractor())抓取URL,而是删除开始URL和定义解析()方法并执行此操作 def start

iPython笔记本中的scrapy shell url返回语法错误

在windows power shell中,我可以运行scrapy shell'http://www.hao123.com“, 我可以运行ipython 我可以运行ipython但不能运行scrapy shell'http://www.hao123.com“ 在ipython笔记本中,我无法运行scrapy shell'http://www.hao123.com“还有 scrapy shell 'http://www.hao123.com' File "<ipython-input-3

使用vs2017调试scrapy

对不起,我不擅长用英语表达 我想知道如何用vs2017调试scrapy 我与vs2015合作得很好,方法如下: import os os.system("run.cmd") 和run.cmd: scrapy crawl weiqn --nolog pause 谢谢。哈哈,现在我找到路了。 它与Pycharm调试器相同。 听说是一种魅力: 哈哈,现在我找到路了。 它与Pycharm调试器相同。 听说是一种魅力:

在scrapy中,如何限制对站点的请求而不是对代理服务器的请求?

我正在使用代理并已将AUTO_AUTOTHROTTLE_ENABLED设置为True。我的印象是,scrapy限制了我正在爬行的站点,相反,它似乎限制了代理本身的请求。如何限制对站点而不是代理的请求 更新:我在发出每个请求时手动在meta中设置代理,而不是使用代理中间件。我认为这不可能仅从spider端实现。通过查看和,您可以看到所使用的延迟是发送请求和返回响应之间的时间差。在这段时间内发生的所有事情都会加在这个延迟上(包括代理延迟)。 为了进一步验证这一点,考虑以下步骤: AutoThrott

为什么scrapy突然给我一个“不可预测的”AttributeError,说没有属性“css”

在我的工作中,我构建了一个scrapy spider,可以在大约200-500个网站登录页面上快速检查页面是否正常工作,除了400个样式错误之外。e、 g.检查第页是否有缺货。此检查发生在我权限范围内的大约30个不同网站上,所有这些网站都使用相同的页面结构 这4个月来每天都运作良好 然后,大约4周前,在没有更改代码的情况下,我突然出现了不可预测的错误: url\u title=response.cstitle::text.extract\u first AttributeError:“Respo

Scrapy:对数据库的多次返回/项目的建议

为了进一步说明这个问题的标题:我正在从电影网站上抓取信息。我目前有一个MySQL数据库,其中填充了电影标题,电影URL,等等。我现在将从数据库中获取这些URL,并将它们设置为新的spider中的我的开始URL。每个url都是指向[插入一部初级电影]网页的链接,传达了更多信息。我感兴趣的信息是: 分销商(即福克斯) 评级(即Pg-13) 导演 类型(即喜剧) 演员 制作人 其中,发行商、收视率、导演和类型将在每个电影网页(一个收视率、一个导演等)中有一个与之相关联的“东西”。当然,将会有多个演

scrapy中的延迟请求

我想反复刮相同的网址与不同的延迟。在研究了这个问题之后,似乎合适的解决方案是使用 nextreq = scrapy.Request(url, dont_filter=True) d = defer.Deferred() delay = 1 reactor.callLater(delay, d.callback, nextreq) yield d 在解析中 然而,我一直无法做到这一点。我收到了错误信息 错误:Spider必须返回请求、BaseItem、dict或None,获得“延迟” 我不熟悉t

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