常用爬网关键字查找

时间:2017-10-02 08:10:02

标签: python-2.7 python-3.x elasticsearch common-crawl warc

我想查找具有特定关键字的所有网站的列表。例如,如果我搜索关键字"体育"或"足球"只需要从常见的爬网warc文件中提取相关的网站URLS,标题,描述和图像。目前我能够用下面的代码很好地读取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。我只需要与" sports"匹配的相关网址。或"足球"。如何在warc文件中搜索该关键字?请帮助我,因为我是常见的爬行新手。我还检查了很多帖子,但没有一个能够解决。

我需要抓取文章图片,如果他们有,我怎么能抓住它作为commoncrawl保存整个网页。?

1 个答案:

答案 0 :(得分:0)

您可以使用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

common crawl index