1

我想查找具有特定关键字的所有网站的列表。例如,如果我搜索关键字“体育”或“足球”,则只需从常见的爬网中提取相关的网站 URL、标题、描述和图像.warc 文件。目前我可以很好地阅读带有以下代码的warc文件。

import warc
f = warc.open("firsttest.warc.gz")
h = warc.WARCHeader({"WARC-Type": "response",}, defaults=True)
N = 10
name="sports"
for record in f:
    url = record.header.get('warc-target-uri', 'none')
    date=record.header.get("WARC-Date")
    IP=record.header.get('WARC-IP-Address')
    payload_di=record.header.get('WARC-Payload-Digest')
    search =name in record.header
    print("URL :"+str(url))
    #print("date :"+str(date))
    #print("IP :"+str(IP))
    #print("payload_digest :"+str(payload_di))
    #print("search :"+str(search))
    text = record.payload.read()
    #print("Text :"+str(text))
    #break

    #print(url)

但它正在获取指定 warc 文件中的所有 url。我只需要与“体育”或“足球”匹配的相关网址。如何在 warc 文件中搜索该关键字?请帮助我,因为我是普通爬行的新手。我也检查了很多帖子,但没有一个成功。

如果他们有,我需要抓取文章图像,我怎样才能将它作为 commoncrawl 来保存整个网页。?

4

1 回答 1

1

您可以使用 AWS Athena 在 S3 上查询 Common Crawl Index。例如,这是我的 SQL 查询,用于在 2019 年 7 月索引中查找“体育”和“足球”匹配的 URL。请参阅此页面 - http://commoncrawl.org/2018/03/index-to-warc-files-and-urls-in-columnar-format/

SELECT *
FROM "ccindex"."ccindex"
WHERE crawl = 'CC-MAIN-2019-13'
AND subset = 'warc'
AND url_path like '%sports%' and url_path like '%football%'
Limit 10

常用爬网索引

于 2019-08-20T11:00:04.240 回答