Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python парсинг , помогите с кодом

Виктор Афанасьев Ученик (84), на голосовании 1 год назад
Подправьте код , кому не сложно и укажите на ошибки , код выдает ошибки
 import requests 
from bs4 import BeautifulSoup
import csv
import re

URL = 'https://uoin.schools48.ru/news2.php?page=4'
settings = "лесного"
site = 'https://uoin.schools48.ru/'

HEADERS = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' ,
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
}

def get_html(url):
r = requests.get(url , headers=HEADERS)
return r.content

def get_content(html, keyword):
load_workbook = ()

wb = load_workbook(f'{datetime.date.today()}.xlsx')
ws = wb.active

current_date = datetime.date.today()
soup = BeautifulSoup(html, 'html.parser')
full_news = soup.findAll('tbody') # Находит посты в хосте
# Вернуть результат
for news in full_news:
datetime = [] # Возможно список
relativedelta = ()
date = news.find('td' , 'div').text # Находит дату последней записи
post_date = datetime.date(int(date[2]), int(date[1]), int(date[0])) # Вычисляет дату записи(возвращает в int) date time( 2023.06.04 )
previous_month_date = datetime.date.today()-relativedelta(month=1) # Вычисляет дату прошлого месяца(2023.06.03)
if post_date >= previous_month_date:
post_link = news.findAll('a').attrs['href'] # Открывает ссылку поста , если проходит условие даты
post_title = news.findAll('div' , class_='col-md-8').text
post_text = ''
post_date = datetime.datetime.strptime(news.find('').text, "%d.%m.%Y").date() # хз
page2 = requests.get(post_link)
soup2 = BeautifulSoup(page2.text, 'html.parser')
full_text = soup2.findAll('p') # Находит полный текст статьи
print(full_text)
print('=====')
for text in full_text:
post_text += str(text.text)
for key in settings.KEYWORDS:
if post_text.lower().find(key.lower()) != -1:
ws.append([site, post_link, post_title, post_text, post_date])
html = get_html(URL)
text = get_content(html, settings)
Голосование за лучший ответ
tricky truck Мастер (1244) 2 года назад
Чуть хоть какие ошибки. Мне сейчас неудобно твой код у себя проверять
Похожие вопросы