Я пытаюсь почистить отзывы о Unibet Casino на этом сайте: https://casinoplacard.com/unibet-casino-reviews-and-bonuses/
Как и в случае с другими источниками отзывов, я использовал Scrapy on Python, чтобы очистить отзывы с помощью кода ниже:
class slotRunner_spyder(scrapy.Spider):
count=0
name = "slotRunner_spyder"start_urls = [
'https://casinoplacard.com/unibet-casino-reviews-and-bonuses/'
]
def parse(self, response):
parsed_uri = urlparse(response.url)
domain = '{uri.scheme}://{uri.netloc}/'.format(uri=parsed_uri)
for review in response.css('div.rwp-users-reviews > div.rwp-u-review') :
self.count+=1
yield {
'name': review.css('td a::text').extract_first(),
'date': review.css('td small::text').extract_first(),
'review': review.css('div.rwp-u-review__content > div.rwp-u-review__comment').extract(),
'url' : response.url
}
print(self.count)
Но для этого сайта это не работает. Чтобы лучше понять, я ввел счетчик (self.count) и обнаружил, что он выполняет только 1 итерацию, что ненормально …
Затем я провел некоторое время, изучая DevTools этого веб-сайта, и обнаружил, что при загрузке страницы метод запроса XHR POST выполняется автоматически с URL: https://casinoplacard.com/wp-admin/admin-ajax.php
И, посмотрев на этот запрос, я нашел данные 182 отзывов в:
Предварительный просмотр >> Данные >> Отзывы
Не могли бы вы, ребята, помочь мне понять, как работает сбор данных?
Большое спасибо !
Я наконец нашел, как это сделать, я уверен, что это не лучший способ, но, по крайней мере, я сделал то, что хотел.
Поэтому, как я сказал в своем вопросе на вкладке предварительного просмотра, были все данные, которые мне были нужны. Так что я должен был получить эти данные. Для этого я понял, что при загрузке URL-адреса запрос XHR POST выполнялся автоматически, поэтому я просто попытался заставить python запросить этот URL-адрес.
import requests
s = requests.Session()
# We get the URL into that session
s.get(url)
#Here is the imitation of the POST request
self.r = s.post(ajax_URL,data=param,headers=headers)`
Параметры вы просто получаете их на вкладке заголовков DevTool, тогда данные формы являются вашими параметрами. Для заголовка вы получите его также во вкладке заголовка, вы ищете
User-Agent и просто вставьте все это в заголовки. URL ajax — это тот, который я написал в своем вопросе.
Надеюсь, что это поможет кому-то.
Других решений пока нет …