问题标签 [common-crawl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 无法使用请求从 Amazon s3 流式传输文件
我正在尝试从 Common Crawl 流式传输爬取数据,但是当我使用stream=True
参数获取请求时,Amazon s3 出错。这是一个例子:
当我在 Common Crawl s3 http url 上运行它时,我得到了响应:
我正在使用warcio,并且需要一个流文件对象作为归档迭代器的输入,并且由于内存有限,无法一次下载所有文件。我应该怎么办?
python - 如何在python中同时下载多个大文件?
我正在尝试从 CommonCrawl 数据库下载一系列 Warc 文件,每个文件大约 25mb。这是我的脚本:
目前正在做的是通过 CommonCrawl REST API 请求下载 Warc 文件的链接,然后将下载启动到“data/warc”文件夹中。
问题是在每次urllib.request.urlretrieve()
调用中,程序都会挂起,直到文件完全下载,然后再发出下一个下载请求。有没有什么方法urllib.request.urlretrieve()
可以在下载发出后立即终止调用,然后下载文件,或者以某种方式为每个请求旋转一个新线程并同时下载所有文件?
谢谢
python - 高效读取 WARC 文件
我正在使用 python 的“warc”库读取 WARC 文件。我正在使用的当前文件约为 4.50 GB。事情是 ;
执行这 2 行最多需要 40 秒。因为像这样的文件还有 64000 个,所以每个文件需要 40 秒是不可接受的。你们有任何提高性能的技巧或任何不同的方法吗?
编辑:我发现 Beautifulsoup 操作需要一些时间。所以我删除了它并自己写了必要的东西。现在速度快了 100 倍。读取和处理 4.50 GB 数据需要 +- 60 秒。通过这行代码,我从数据中删除了脚本;
有了这个,我拆分了文本并删除了我不需要的图章
正如我所说,它更快,但在这种情况下 60 秒并不是那么好。有什么建议么 ?
mapreduce - 使用 Hadoop Streaming 和 MapReduce 处理来自 CommonCrawl 的许多 WARC 档案
我正在做一个项目,我需要从 S3 容器下载特定 URL 的爬网数据(来自 CommonCrawl),然后处理该数据。
目前我有一个 MapReduce 作业(通过 Hadoop Streaming 的 Python),它为 URL 列表获取正确的 S3 文件路径。然后我尝试使用第二个 MapReduce 作业通过从 commoncrawl S3 存储桶下载数据来处理此输出。在映射器中,我使用 boto3 从 commoncrawl S3 存储桶下载特定 URL 的 gzip 内容,然后输出有关 gzip 内容的一些信息(字数计数器信息、内容长度、链接到的 URL 等)。然后 reducer 会通过这个输出来获得最终的字数、URL 列表等。
第一个 MapReduce 作业的输出文件大小只有 6mb 左右(但一旦我们扩展到完整的数据集就会更大)。当我运行第二个 MapReduce 时,这个文件只被拆分了两次。通常,对于这么小的文件,这不是问题,但是我上面描述的映射器代码(获取 S3 数据,吐出映射的输出等)需要一段时间才能为每个 URL 运行。由于文件只拆分了两次,因此只有 2 个映射器正在运行。我需要增加拆分的数量,以便可以更快地完成映射。
我已经尝试为 MapReduce 作业设置“mapreduce.input.fileinputformat.split.maxsize”和“mapreduce.input.fileinputformat.split.minsize”,但它不会改变发生的拆分数量。
以下是映射器的一些代码:
我还手动将输入文件拆分为多个文件,最多 100 行。这具有为我提供更多映射器的预期效果,但随后我开始遇到来自 s3client.get_object() 调用的 ConnectionError:
我目前只用少数几个 URL 运行它,但是一旦我让它工作,我需要用几千个(每个都有很多子目录)来做。
我不确定从哪里开始解决这个问题。我觉得很有可能有比我正在尝试的方法更好的方法。映射器似乎为每个 URL 花费了这么长时间的事实似乎表明我正在接近这个错误。我还应该提到,如果直接作为管道命令运行,mapper 和 reducer 都可以正常运行:
"cat short_url_list.txt | python mapper.py | sort | python reducer.py" -> 产生所需的输出,但在整个 URL 列表上运行需要很长时间。
任何指导将不胜感激。
python - mrjob 返回非零退出状态 256
我是 map reduce 的新手,我正在尝试使用mrjob
python 包运行 map reduce 作业。但是,我遇到了这个错误:
我已经尝试在本地运行它python ./word_count.py input/test-1.warc > output
并且它是成功的。
我在用着
python 2.7.14
Hadoop 2.8.3-amzn-1
pip 18.0
mrjob 0.6.4
有任何想法吗?谢谢!
这是我运行 mapreduce 作业的命令。我从cc-mrjob存储库中得到它。该文件被调用run_hadoop.sh
,我使用chmod +x run_hadoop.sh
我运行它./run_hadoop.sh word_count test-1.warc output
在哪里
word_count
是工作(文件称为word_count.py
)test-1.warc
是输入(位于hdfs:///user/hadoop/test-1.warc
)- 并且是输出目录
output
(位于hdfs:///user/hadoop/output
* 更新 *
我查看了 HUE 界面中的 syslog。还有这个错误
org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Could not deallocate container for task attemptId attempt_1536113332062_0001_r_000003_0
这与我遇到的错误有关吗?
我也在地图尝试的标准错误之一中得到了这个
/bin/sh: run_prestart: line 1: syntax error: unexpected end of file
和
No module named boto3
但是,我在我的 emr 中使用 pip install boto3 安装了 boto3。该模块在hadoop中不可用吗?
python - Mrjob 步骤失败。怎么调试?
我正在尝试mrjob
在 EMR 集群中运行示例。我在 AWS 仪表板中手动创建了 EMR 集群并按如下方式启动了 mrjob
作业因以下错误消息而失败
如何查看失败消息?
java - 如何使用 http 请求将 S3 中的多个 gzip 文件读入单个 RDD?
我必须像这样下载许多存储在 S3 上的 gzip 文件:
要下载它们,您必须添加前缀https://commoncrawl.s3.amazonaws.com/
我必须下载并解压缩文件,然后将内容组装为单个 RDD。
与此类似的东西:
我想用火花做这个代码:
amazon-web-services - 是否可以从 Common Crawler API 的 web 版本中获取标题?
我正在尝试从网页中获取网址、标题和语言。幸运的是,存在 CC API https://github.com/webrecorder/pywb/wiki/CDX-Server-API#api-reference。但遗憾的是,我没有注意到获得头衔的方法。
目前,我将 CC 查询为(例如)http://index.commoncrawl.org/CC-MAIN-2018-47-index?url=www.example.com/*&output=json我得到“url”和“语言”信息。
有没有办法通过API查询CC而不下载每个warc并获取标题?
谢谢!
url - commoncrawl 是否仅包含良性 URL?如果是,他们如何避免将恶意 URL 编入索引?
我们想知道 commoncrawl 数据库是否可以用作 URL 分类的合法数据集。
web-crawler - 如何抓取特定语言的网络
我正在尝试从乌兹别克语网页中收集所有可用的文本信息(尽可能多地)(用于我的研究)。最好的方法是什么?
我找到了 Common Crawl,但不确定提取特定语言文本是否容易。