Спарсить темы с форуме
Всем привет! Я пытаюсь спарсить темы с форума: http://liveingryffindor.forum24.ru/
Когда я пишу такой код, чтобы получить открытые темы, все работает хорошо:
from bs4 import BeautifulSoup
# Адрес страницы форума
url = "http://liveingryffindor.forum24.ru/?1-2-0-00000026-000-10001-0"
# Получаем HTML-код страницы форума
response = requests.get(url)
# Создаем объект BeautifulSoup из HTML-кода
soup = BeautifulSoup(response.text, "html.parser")
# Находим все элементы div с классом "post"
posts = soup.find_all(class_=lambda x: x in ["font3", "font1"])
with open("forum_posts.txt", "w", encoding="utf-8") as file:
for post in posts:
text = post.get_text()
file.write(text + "\n")
Скриншот результата:
Затем я пытаюсь получить закрытые темы с помощью своего логина и пароля:
import requests
from bs4 import BeautifulSoup
# Логин и пароль на форуме
username = "******"
password = "******"
# Адрес страницы авторизации
login_url = "http://liveingryffindor.forum24.ru/"
# Адрес страницы закрытой темы, которую необходимо спарсить
closed_topic_url = "http://liveingryffindor.forum24.ru/?1-8-0-00000008-000-0-0-1382282553"
# Создаем сессию для авторизации
session = requests.Session()
# Отправляем POST запрос с логином и паролем на страницу авторизации
login_data = {"nick: ": username, "pass ": password}
session.post(login_url, data=login_data)
# Получаем HTML-код закрытой темы
response = session.get(closed_topic_url)
# Создаем объект BeautifulSoup из HTML-кода
soup = BeautifulSoup(response.text, "html.parser")
# Находим все элементы div с классом "post"
posts = soup.find_all(class_=lambda x: x in ["font3", "font1"])
# Сохраняем текст в файл
with open("closed_topic2.txt", "w", encoding="utf-8") as file:
for post in posts:
text = post.get_text()
file.write(text + "\n")
Результат выходит такой:
пароль: - зарегистрироваться, я новый участник - я забыл пароль, прошу выслать на е-майл
Текста там нет. Помогите, пожалуйста, решить проблему
Источник: Stack Overflow на русском