我正在尝试使用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'
我想在做刮擦跑步时了解下一行中单词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 spider,用于从各种餐厅网站的start\u URL列表中刮取餐厅菜单。一旦找到每个餐厅的菜单,就不再需要继续在特定的餐厅网站上爬行。爬行器(理想情况下)应该中止该start\u url的队列,然后移动到下一家餐厅
一旦满足停止条件,是否有方法阻止Scrapy对其请求队列的剩余部分*每个开始url*进行爬网?我不认为CloseSpider异常是合适的,因为我不想停止整个spider,只想停止当前start\u url的队列,然后转到下一个start\u u
我在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
我正试图从亚马逊印度网站上搜集数据。在以下情况下,我无法使用yield()方法收集响应并解析元素:
1) 我必须从产品页面转到评论页面
2) 我必须从一个复习页面转到另一个复习页面
代码流:
1) customerReviewData()调用getCustomerRatingsAndComments(响应)
2) GetCustomerRatings和Comments(响应)
查找审阅页面的URL,并使用getCrrFromReviewPage(request)作为回调方法调用收益请求方法,
是否有方法更改项目加载器中使用的响应,例如,我正在解析两个页面,并在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 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框架。应用程序是Scrapy==1.6.0和Twisted==19.2.0,Scrapy redis用于启用分布式,但返回了一些请求
'''[出现异常][]''
如何处理此问题将日志添加到问题中。是。你能给我们更多的信息吗?
我想知道如何使用Scrapy获取页面SSL证书的信息。
有办法吗
谢谢 介绍了Scrapy 2.0.0。介绍了Scrapy 2.0.0
我使用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 craw dmoz”命令中。
代码如下(我在python shell中编写了该代码,并将其保存为键入.py扩展名):
我使用的目录应该可以,请在树下找到:
.
├── scrapy.cfg
└── tutorial
├── __init__.py
├── __init__.pyc
├── items.py
├── pipelines.py
如果我和你一起走进这个脏兮兮的壳里
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似乎还没有设置任何cookies。然而,在第一次请求之后,scrapy收到了cookie,从那时起就可以正常工作了
然而,这使得我很难将“scrapy view”等工具用于任何特定的url,因为该网站将始终重定向到主页,而这正是scrapy将在我的浏览器中打开的内容
scrapy是否可以保存cookie,并指定在所有刮板上使用它?我可以指定将其与scrapy view等一起使用吗?没有内置机制
在scrapy中,如果我使用大型meta发出请求。
例如。
请求(url=url,meta=some\u meta)
假设某个元是某个大的dict。那么,它如何影响请求/响应时间呢?如果它被映射到内存以供参考,而不是发送到url端点,那么它是如何完成的呢?。我是scrapy的新手,我搜索了此信息,但没有找到任何信息。元选项用于根据每个请求将配置设置传递给scrapy组件,但不一定直接映射到http请求
有一个默认扩展接受的元参数列表:
例如,如果您传递meta={'dont_retry':T
我正在尝试文档(第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
无论出于何种原因,所有项都以元组的形式返回。不知道我错过了什么。在所有其他spider和项目中,它只是一个列表(当我使用extract()时)
这是我的蜘蛛代码
def parse(self, response):
inspect_response(response, self)
a = response.xpath('//table//tr')
for i in a:
item = CosdnaExtItem()
item['name'
标签: Scrapy
scrapy-spiderscrapy-splash
我尝试使用splash脚本返回多个html页面(在一个响应中,如文档中所示),并从中提取链接。但是我发现在response.text和response.body中,只要返回了多个页面,html内容就会改变。response.data的情况并非如此,它工作正常。为什么会这样
我在与文档中相同的代码(和网站)上尝试了这一点-(来自后面的部分,来自多个html快照的示例)
这是我的启动请求-->
lua脚本如下所示-->
结果是:
response.data-->
{u'html':u'\n\n\n黑
我试图从MastodonAPI(用户id号)获取json用户信息。问题是每个页面一次只存储一个用户信息,但是我想一次收集所有信息。有没有办法按数字顺序收集json文件(https://mastodon.online/api/v1/accounts/{1,2,3,4,…})然后将其全部存储在一个json文件中
我一直在四处寻找答案,每次我用一个和我的问题相似的答案,它都不起作用。如果有人能帮上忙,那就太好了,我整天都在尝试
文件 “到目前为止你都尝试了什么?”Samsuli修改了一些东西,比如ap
有问题与我的刮擦爬虫以下链接。下面是我的代码。我希望它基本上转到YouTube页面,拉取twitter链接,然后调用parse_page3并拉入信息,但现在,只有parse_page2提取部分工作
谢谢!
埃里克
如果要使用规则s和链接抽取器s,则需要使用
替换:
class YTSpider(scrapy.Spider):
与:
谢谢你。我是否需要更改在终端中输入的内容以执行它?scrapy crawl youtube-o items.json是我目前正在使用的。还是很难让它工作
class
我有一只好斗的蜘蛛:
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
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中设置了download_delay=10,我尝试了一个包,然后我尝试了实现tor和polipo,根据这个,配置是可以的。但在再次跑了1/2次之后,我被禁止了!有人能帮我吗
注意:我也想试试,但无法激活
单击时使用延迟
非tor-来自同一地址的所有连接-不正确,在多次访问后轮换代理
查看这篇文章-你应该看看上面写的内容
在处理这类问题时,这里有一些要记住的提示
地点:
从浏览器中的已知用户代理池中旋转用户代理
(谷歌搜索以获得他们的名单)
禁用Coo
我从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源代码签出,然后使用此映
我使用的爬行器递归跟踪链接,使用链接提取调用下一页,如:
rules = (Rule(LinkExtractor(
allow=(),\
restrict_xpaths=('//a[contains(.,"anextpage")]')),\
callback='parse_method',\
follow=True),
)
我已经应用了这个策略来递归地抓取不同
我对分布式scrapy爬行的世界还不熟悉,但我发现了scrapy redis并一直在使用它。我在raspberry pi上使用它来抓取大量推送到redis的URL。我一直在做的是在Pi中创建多个SSH会话,然后在Pi中运行
scrapy crawl myspider
让蜘蛛“等待”。然后启动另一个SSH并执行redis cli lpush“我的链接”。爬虫然后运行,尽管我不确定它们实际运行的并发性如何
我希望这是明确的,如果没有请让我知道,我可以澄清。我真的只是在实现了scrapy redis的
现在我想从网页上抓取关键词meta和description,如下所示:
<html>
<head>
<title>test page</title>
<meta name="keywords" content="A,B,C">
<meta name="description" content="the description a page">
....
我昨天在谷歌上搜索过,但不知道,请给我一些建议。你甚至不需要scrap
事实上,我详细阅读了这个问题。
但在我的项目中,有几十个爬虫程序使用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的新手,我正在尝试从网站中获取以下格式的内容:
{
"book": {
"title": "xyz,",
"chapters": {
"title": "xyz",
"link": "xyz",
"articles": [
{
"article_name": "xyz",
"
我正试图设置一个crontab来刮东西。到目前为止,我写了
23 18 * * * cd PycharmProjects/untitled/Project1 && scrapy crawl xx -o test.csv
但当我这样做时,我得到了:
/bin/sh: scrapy: command not found.
我该怎么办?
我试着在我的mac电脑里找到了刮痧,但找不到。但是我可以从终端运行crontab任务的第二部分。因为crontab没有为您设置PATH变量,所以它
我想用我的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爬行一个网站,但当我选择某些选择器时,它不会提取其中的文本
该网站是
不提取文本的选择器包括:
response.css('#informacionmedicos').get()
response.css('#divsinonimos').get()
它们都显示了各自的html代码行,但我看不到DOM中显示的文本(既不在html行中,也不使用::text属性)。知道发生了什么吗
感谢您,Scrapy不适用于呈现的DOM,而适用于纯源HTML。在大多数浏览器中,您可以使用C
我需要下载一个大文件(+/-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项目。此项目位于scrapyd实例上。
我希望能够动态更改projects settings.py文件中的设置(例如DOWNLOADER\u middleware)
是否可以在向scrapyd实例发送请求时更改这些设置。请注意,我不想创建多个项目,因为这将导致在项目之间重复公共代码
谢谢您可以将参数传递给scrapyd并使用-d参数更改设置
curl http://localhost:6800/schedule.json -d project=myproje
我正在尝试编写一个downloader中间件,它忽略没有预定义元素的响应。但是,我不能在中间件中使用HtmlResponse类的css方法,因为此时响应的类型只是response。当它到达spider时,它是一个HtmlResponse,但是现在已经太晚了,因为我无法对中间件状态执行某些操作
响应的最终类型集在哪里?如果看不到中间件的代码,就很难判断到底是什么问题
但是,下面我的中间件得到一个HtmlResponse对象:
class FilterMiddleware(object):
我有一个爬虫运行了几天。我想暂停爬虫程序,以便在系统上执行其他操作。粗略的文档说,这可以使用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
请原谅我的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从该页面中提取数据:
爬行器将抓取多个页面,但为了保持简单,我在这里排除了分页代码。问题是,我希望在每页上刮取的表行数每次都可能改变
因此,我需要一种从页面中删除所有表数据的方法,不管它有多少个表行
首先,我提取了页面上的所有表行。然后,我创建了一本空白字典。接下来,我尝试循环遍历每一行,并将其单元格数据放入字典
但它不工作,并且返回一个空白文件
知道怎么了吗
# -*- coding: utf-8 -*-
import scrapy
class Test1Spid
查看推特: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从一些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.selector导入HtmlXPathSelector的建议
但是什么都没用
response.body和response.headers工作正常,但是response.selector和response.xpath()给出错误,表示响应对象不存在此类属性
我也无法导入选择器,因为在scrapy目录层次结构中没有选择器(不知道为什么)
我正在使用SCRAPY 0.16(使用Django Dyn
当您从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一起使用Tor和用户代理切换器。这与关于这个主题的其他指南类似。Tor大约每10分钟更改一次ip地址。中间件会根据每个请求更改用户代理
我想将用户代理更改与ip地址更改同步。为了实现这一点,我需要在Scrapy发送请求之前执行一些代码。代码将检查自上次请求以来ip是否已更改,如果已更改,则更改用户代理。如果ip没有改变,它将使用相同的用户代理。我还没有找到在执行周期的正确位置调用此代码的方法
想要进行此更改的原因是,在我正在抓取的站点上,具有不同用户代理的多个请求来自同一
我正在穿越。在这个javascript:ctrl.set\u pageReload(1)函数中,进行一个AJAX调用,然后加载页面数据。我如何编写我的规则(LinkExtractor()。来进行遍历,或者有其他方法吗?什么是AJAX?它只是一个使用GET或POST方法对链接的请求
可以在“检查图元”视图中进行检查
单击您正在谈论的按钮,然后查看AJAX将走向何方
另外,不要通过规则(LinkExtractor())抓取URL,而是删除开始URL和定义解析()方法并执行此操作
def start
在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
我与vs2015合作得很好,方法如下:
import os
os.system("run.cmd")
和run.cmd:
scrapy crawl weiqn --nolog
pause
谢谢。哈哈,现在我找到路了。
它与Pycharm调试器相同。
听说是一种魅力:
哈哈,现在我找到路了。
它与Pycharm调试器相同。
听说是一种魅力:
我正在使用代理并已将AUTO_AUTOTHROTTLE_ENABLED设置为True。我的印象是,scrapy限制了我正在爬行的站点,相反,它似乎限制了代理本身的请求。如何限制对站点而不是代理的请求
更新:我在发出每个请求时手动在meta中设置代理,而不是使用代理中间件。我认为这不可能仅从spider端实现。通过查看和,您可以看到所使用的延迟是发送请求和返回响应之间的时间差。在这段时间内发生的所有事情都会加在这个延迟上(包括代理延迟)。
为了进一步验证这一点,考虑以下步骤:
AutoThrott
在我的工作中,我构建了一个scrapy spider,可以在大约200-500个网站登录页面上快速检查页面是否正常工作,除了400个样式错误之外。e、 g.检查第页是否有缺货。此检查发生在我权限范围内的大约30个不同网站上,所有这些网站都使用相同的页面结构
这4个月来每天都运作良好
然后,大约4周前,在没有更改代码的情况下,我突然出现了不可预测的错误:
url\u title=response.cstitle::text.extract\u first
AttributeError:“Respo
怎样才能去每一块土地
标签: Scrapy
pipelinemultiple-tables
为了进一步说明这个问题的标题:我正在从电影网站上抓取信息。我目前有一个MySQL数据库,其中填充了电影标题,电影URL,等等。我现在将从数据库中获取这些URL,并将它们设置为新的spider中的我的开始URL。每个url都是指向[插入一部初级电影]网页的链接,传达了更多信息。我感兴趣的信息是:
分销商(即福克斯)
评级(即Pg-13)
导演
类型(即喜剧)
演员
制作人
其中,发行商、收视率、导演和类型将在每个电影网页(一个收视率、一个导演等)中有一个与之相关联的“东西”。当然,将会有多个演
我想反复刮相同的网址与不同的延迟。在研究了这个问题之后,似乎合适的解决方案是使用
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 页