как сделать чтобы парсер работал через определенное время
Вот, например, на сайте новое обьявление, и я хочу, чтобы он взял сразу эту информацию. Если что, все в таблице excel.
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://krisha.kz/arenda/kvartiry/almaty/"
response = requests.get(url).text
soup = BeautifulSoup(response, 'lxml')
check = soup.find_all('div', class_ = 'a-card__header')
results = []
for result in check:
link = result.find('a', href=True)
tex = result.text.strip()
if link:
lin = "https://krisha.kz" + link['href']
results.append([tex, lin])
df = pd.DataFrame(results, columns=['Tex', 'Lin'])
df.to_excel('results.xlsx', index=False)
Ответы (1 шт):
Автор решения: Сонный кофеман
→ Ссылка
Что если сделать в цикле с задержкой примерно в минуту-две, сделать простую проверку старого контента который уже есть с новым на совпадение, и если они не совпадают, то парсить её.
import requests
import time
import pandas as pd
from bs4 import BeautifulSoup
url = "https://krisha.kz/arenda/kvartiry/almaty/"
response = requests.get(url).text
soup = BeautifulSoup(response, 'lxml')
check = soup.find_all('div', class_ = 'a-card__header')
def writeDate(data):
df = pd.DataFrame(data, columns=['Tex', 'Lin'])
df.to_excel('results.xlsx', index=False)
def checkOriginal(data1, data2):
if data1 == data2:
return True
return False
while True:
time.sleep(80)
data = []
results = []
for result in check:
link = result.find('a', href=True)
tex = result.text.strip()
if link:
lin = "https://krisha.kz" + link['href']
results.append([tex, lin])
if not checkOriginal(data, results):
writeDate(results)
data = results