问题标签 [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.

0 投票
1 回答
394 浏览

python - 无法使用请求从 Amazon s3 流式传输文件

我正在尝试从 Common Crawl 流式传输爬取数据,但是当我使用stream=True参数获取请求时,Amazon s3 出错。这是一个例子:

当我在 Common Crawl s3 http url 上运行它时,我得到了响应:

我正在使用warcio,并且需要一个流文件对象作为归档迭代器的输入,并且由于内存有限,无法一次下载所有文件。我应该怎么办?

PS。我在示例中请求的网址是https://commoncrawl.s3.amazonaws.com/crawl-data/CC-MAIN-2018-05/segments/1516084886237.6/warc/CC-MAIN-20180116070444-20180116090444-00000.warc。广州

0 投票
1 回答
395 浏览

python - 如何在python中同时下载多个大文件?

我正在尝试从 CommonCrawl 数据库下载一系列 Warc 文件,每个文件大约 25mb。这是我的脚本:

目前正在做的是通过 CommonCrawl REST API 请求下载 Warc 文件的链接,然后将下载启动到“data/warc”文件夹中。

问题是在每次urllib.request.urlretrieve()调用中,程序都会挂起,直到文件完全下载,然后再发出下一个下载请求。有没有什么方法urllib.request.urlretrieve()可以在下载发出后立即终止调用,然后下载文件,或者以某种方式为每个请求旋转一个新线程并同时下载所有文件?

谢谢

0 投票
2 回答
1659 浏览

python - 高效读取 WARC 文件

我正在使用 python 的“warc”库读取 WARC 文件。我正在使用的当前文件约为 4.50 GB。事情是 ;

执行这 2 行最多需要 40 秒。因为像这样的文件还有 64000 个,所以每个文件需要 40 秒是不可接受的。你们有任何提高性能的技巧或任何不同的方法吗?

编辑:我发现 Beautifulsoup 操作需要一些时间。所以我删除了它并自己写了必要的东西。现在速度快了 100 倍。读取和处理 4.50 GB 数据需要 +- 60 秒。通过这行代码,我从数据中删除了脚本;

有了这个,我拆分了文本并删除了我不需要的图章

正如我所说,它更快,但在这种情况下 60 秒并不是那么好。有什么建议么 ?

0 投票
1 回答
233 浏览

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 列表上运行需要很长时间。

任何指导将不胜感激。

0 投票
1 回答
1621 浏览

python - mrjob 返回非零退出状态 256

我是 map reduce 的新手,我正在尝试使用mrjobpython 包运行 map reduce 作业。但是,我遇到了这个错误:

我已经尝试在本地运行它python ./word_count.py input/test-1.warc > output并且它是成功的。

我在用着

  1. python 2.7.14
  2. Hadoop 2.8.3-amzn-1
  3. pip 18.0
  4. 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中不可用吗?

0 投票
1 回答
382 浏览

python - Mrjob 步骤失败。怎么调试?

我正在尝试mrjob在 EMR 集群中运行示例。我在 AWS 仪表板中手动创建了 EMR 集群并按如下方式启动了 mrjob

作业因以下错误消息而失败

如何查看失败消息?

0 投票
1 回答
644 浏览

java - 如何使用 http 请求将 S3 中的多个 gzip 文件读入单个 RDD?

我必须像这样下载许多存储在 S3 上的 gzip 文件:

要下载它们,您必须添加前缀https://commoncrawl.s3.amazonaws.com/

我必须下载并解压缩文件,然后将内容组装为单个 RDD。

与此类似的东西:

我想用火花做这个代码:

0 投票
1 回答
63 浏览

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并获取标题?

谢谢!

0 投票
1 回答
157 浏览

url - commoncrawl 是否仅包含良性 URL?如果是,他们如何避免将恶意 URL 编入索引?

我们想知道 commoncrawl 数据库是否可以用作 URL 分类的合法数据集。

0 投票
0 回答
371 浏览

web-crawler - 如何抓取特定语言的网络

我正在尝试从乌兹别克语网页中收集所有可用的文本信息(尽可能多地)(用于我的研究)。最好的方法是什么?

我找到了 Common Crawl,但不确定提取特定语言文本是否容易。