Парсер на питон для парсинга отзывов с сайта

Парсер на питон для парсинга отзывов с сайта https://www.trustpilot.com/review и импорт их в бд wordpress
Дополнительные параметры: codeFlowType: codeWrite codeFlowLang: Python
Создано: 20.02.2025 07:22

Парсер на питон для парсинга отзывов с сайта https://www.trustpilot.com/review и импорт их в бд wordpress

Создание парсера для отзывов с сайта Trustpilot и их импорт в базу данных WordPress требует использования нескольких библиотек. Вот пример кода на Python, использующий requests, BeautifulSoup, pandas и mysql-connector. Пожалуйста, убедитесь, что у вас установлены необходимые библиотеки, прежде чем запускать код.

Установка библиотек

pip install requests beautifulsoup4 pandas mysql-connector-python

Код парсера

import requests
from bs4 import BeautifulSoup
import mysql.connector

# Настройки для подключения к базе данных WordPress
db_config = {
    'host': 'localhost',
    'user': 'username',  # замените на ваше имя пользователя
    'password': 'password',  # замените на ваш пароль
    'database': 'wordpress_db'  # замените на имя вашей базы данных
}

# Функция для подключения к базе данных
def connect_to_db():
    return mysql.connector.connect(**db_config)

# Функция для парсинга отзывов
def parse_reviews(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')
    reviews = []

    for review in soup.find_all('div', class_='review'):  # Убедитесь, что вы используете правильный класс
        title = review.find('h2').text.strip() if review.find('h2') else 'Без заголовка'
        content = review.find('p').text.strip() if review.find('p') else 'Нет содержания'
        rating = review.find('div', class_='star-rating')['data-rating'] if review.find('div', class_='star-rating') else 'Не указано'
        
        reviews.append({
            'title': title,
            'content': content,
            'rating': rating
        })

    return reviews

# Функция для импорта отзывов в базу данных WordPress
def import_reviews_to_db(reviews):
    db = connect_to_db()
    cursor = db.cursor()

    for review in reviews:
        cursor.execute("""
            INSERT INTO wp_posts (post_title, post_content, post_type, post_status)
            VALUES (%s, %s, %s, %s)
        """, (review['title'], review['content'], 'review', 'publish'))

    db.commit()
    cursor.close()
    db.close()

# Запуск парсинга и импорта отзывов
if __name__ == "__main__":
    url = 'https://www.trustpilot.com/review/your-website.com'  # Замените на целевой URL
    reviews = parse_reviews(url)
    import_reviews_to_db(reviews)
    print(f'Импортировано {len(reviews)} отзывов.')

Пояснения к коду

  1. Подключение к базе данных: Убедитесь, что вы заменили параметры подключения (имя пользователя, пароль, имя базы данных) на ваши собственные данные.

  2. Парсинг отзывов: Код находит элементы с классом review. Вам нужно будет настроить этот код, чтобы соответствовать текущей структуре HTML страницы.

  3. Импорт в базу данных: Код вставляет заголовок и содержание отзыва в таблицу wp_posts. Убедитесь, что эта таблица уже существует в вашей базе данных WordPress.

  4. Запуск кода: Для запуска кода просто сохраните его в файл с расширением .py и выполните команду python your_script.py.

Важно

  • Обратите внимание на правила использования API и парсинга сайтов. Убедитесь, что вы не нарушаете условия обслуживания Trustpilot.
  • Возможно использование сторонних библиотек, таких как Scrapy или BeautifulSoup для более сложных случаев парсинга.
  • Вы можете дополнительно обработать исключения и ошибки для более надежного выполнения процессов.