Как спарсить рейтинг и дату на TripAdvisor с помощью BeautifulSoupPython

Программы на Python
Ответить
Anonymous
 Как спарсить рейтинг и дату на TripAdvisor с помощью BeautifulSoup

Сообщение Anonymous »

Я пытаюсь получить некоторую информацию (комментарии, даты, рейтинги) об этом отеле на TripAdvisor
Вот мой сценарий:

Код: Выделить всё

import re
import json
import requests
from requests import get
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
import datetime
import time
import random

root_url = 'https://www.tripadvisor.ca/Hotel_Review-g60982-d87016-Reviews-or'
urls = [ '{root}{i}-Hilton_Hawaiian_Village_Waikiki_Beach_Resort-Honolulu_Oahu_Hawaii.html'.format(root=root_url, i=i) for i in range(5,20,5) ]

comms = []
notes = []
dates = []

for url in urls:
results = requests.get(url)

#time.sleep(20)

soup = BeautifulSoup(results.text, "html.parser")

commentary = soup.find_all('div', class_='oETBfkHU')

for container in commentary:

comm  = container.find('q', class_ = 'IRsGHoPm').text.strip()

comms.append(comm)

date_tag = container.find("span", class_="_355y0nZn").text.strip()

dates.append(date_tag)

data = pd.DataFrame({
'comms' : comms,
'dates' : dates
})

#print(data.head())
data.to_csv('file.csv', sep=';', index=False)
И вот мой результат:
Изображение

Я не удивлен, date_tag указан не совсем точно, но я не понимаю, как выбрать правильный текст.Вот HTML :
Изображение

«Март 2020 года» вообще не имеет класса, поэтому я подумал, что если я укажу контейнер.find("span", class_="_355y0nZn").text.strip(), он будет работать, но нет, это не так.< /p>
И последнее: я не знаю, как оценить рейтинг, давайте посмотрим html:
[img]https:// i.sstatic.net/gaaSg.png[/img]

Как видите, текста вообще нет. Я думаю, что рейтинг работает с ui_bubble_rating bubble_50, где 50 — это рейтинг (5). Как это поцарапать? Я никогда раньше не видел такой структуры.
Есть идеи?
Спасибо :)

Подробнее здесь: https://stackoverflow.com/questions/654 ... utifulsoup
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»