避免重复抓取条目 - 通过提前检查json/csv中的URL来避免重复抓取博客
创始人
2024-12-17 19:30:38
0

以下是一个示例代码,演示如何通过提前检查 JSON 或 CSV 文件中的 URL 来避免重复抓取博客:

import json
import csv
import requests

def check_duplicate_urls(urls, target_url):
    return target_url in urls

def save_url_to_file(url, file_path):
    with open(file_path, 'a') as file:
        file.write(url + '\n')

def read_urls_from_json(json_file):
    with open(json_file, 'r') as file:
        data = json.load(file)
        return data['urls']

def read_urls_from_csv(csv_file):
    urls = []
    with open(csv_file, 'r') as file:
        reader = csv.reader(file)
        for row in reader:
            urls.extend(row)
    return urls

def crawl_blog(url, json_file, csv_file):
    json_urls = read_urls_from_json(json_file)
    csv_urls = read_urls_from_csv(csv_file)

    if check_duplicate_urls(json_urls + csv_urls, url):
        print(f"URL {url} has already been crawled.")
        return

    # 进行博客抓取的代码
    response = requests.get(url)
    # 处理抓取到的博客数据

    # 将已抓取的 URL 保存到 JSON 文件
    json_urls.append(url)
    with open(json_file, 'w') as file:
        json.dump({'urls': json_urls}, file)

    # 将已抓取的 URL 保存到 CSV 文件
    save_url_to_file(url, csv_file)

# 示例用法
crawl_blog('https://example.com/blog1', 'urls.json', 'urls.csv')
crawl_blog('https://example.com/blog2', 'urls.json', 'urls.csv')
crawl_blog('https://example.com/blog1', 'urls.json', 'urls.csv')  # 这次会被检测到重复

在上面的示例代码中,check_duplicate_urls 函数用于检查目标 URL 是否已经存在于已抓取的 URL 列表中。save_url_to_file 函数用于将已抓取的 URL 保存到文件中。

read_urls_from_jsonread_urls_from_csv 函数分别用于从 JSON 文件和 CSV 文件中读取已抓取的 URL 列表。

crawl_blog 函数是一个示例的博客抓取函数。它首先读取已抓取的 URL 列表,然后使用 check_duplicate_urls 函数检查目标 URL 是否已经存在于列表中。如果存在,则打印出重复抓取的信息并退出。如果不存在,则进行博客抓取,并将已抓取的 URL 保存到 JSON 文件和 CSV 文件中。

相关内容

热门资讯

八分钟了解!熟客温州麻将有没有... 八分钟了解!熟客温州麻将有没有挂,掌中乐游戏中心有辅助吗,大神讲解(有挂黑科技)1、掌中乐游戏中心有...
十分钟了解!星悦云南麻将有吗,... 十分钟了解!星悦云南麻将有吗,吉祥斗地主大填坑有挂吗,规律教程(有挂透明);1、实时吉祥斗地主大填坑...
八分钟了解!手机潮汕雀友麻将会... 八分钟了解!手机潮汕雀友麻将会真的有挂吗,河洛杠次输赢规律,技巧教程(有挂插件)1、构建自己的手机潮...
三分钟了解!大唐麻将系统规律,... 三分钟了解!大唐麻将系统规律,决战血流有没有外挂,微扑克教程(有挂详情)1)决战血流有没有外挂辅助挂...
1分钟了解!多乐够级辅助工具,... 1分钟了解!多乐够级辅助工具,可乐斗地主残局修改器,规律教程(有挂脚本)1、下载好可乐斗地主残局修改...
9分钟了解!天天斗地主跑得快怎... 9分钟了解!天天斗地主跑得快怎么拿好牌,财神13张外挂效果,2025新版教程(有挂脚本);1、金币登...
九分钟了解!牌乐门开挂真的,中... 九分钟了解!牌乐门开挂真的,中至跑得快有挂吗,专业教程(有挂秘籍)一、中至跑得快有挂吗AI软件牌型概...
八分钟了解!微友麻将胡牌神器,... 八分钟了解!微友麻将胡牌神器,小吆湖南跑得快有挂吗,揭秘教程(有挂技巧);1、小吆湖南跑得快有挂吗a...
二分钟了解!中至麻将打炸有挂的... 二分钟了解!中至麻将打炸有挂的吗,海南老友麻将有挂的吗,黑科技教程(有挂透视)1、每一步都需要思考,...
七分钟了解!广西山水手机麻将有... 七分钟了解!广西山水手机麻将有挂吗,川麻圈辅助器价格,2025新版总结(有挂普及);在进入广西山水手...