Чтобы изолировать только новые публикации, вам нужно найти какой-то первичный ключ, который гарантированно будет уникальным для каждого результата. Это может быть URL, внутренний идентификатор и т. Д. После того, как вы нашли уникальное значение, вам нужно сохранить его между сеансами. Для быстрого поиска я бы использовал набор. Вот базовый пример, который сохраняет результаты, которые вы видели между сеансами, используя наборы и встроенный модуль pickle.
Мы будем предполагать, что вы изолировали результаты в списке elements
, и что каждый элемент являетсяОбъект BeautifulSoup с тегом <a>
с уникальным значением href
.
import os
import pickle
if not os.path.exists('seen.pickle'): # If the seen file doesnt exist, create it.
with open('seen.pickle', 'wb') as file:
pickle.dump(set(), file)
with open('seen.pickle', 'rb') as file: # Load the seen file so we can reference it.
seen = pickle.load(file)
for element in elements:
if not element['href'] in seen:
# Your own code here
seen.add(element['href']) # Add it to seen so it is never parsed again
with open('seen.pickle', 'wb') as file: # Save the seen file.
pickle.dump(seen, file)