Как извлечь информацию о рейтинге с помощью селектора CSS или любых других методов

Я изучаю веб-скрейпинг самостоятельно и пытаюсь удалить рейтинги рецензентов на Yelp в качестве практики. Как правило, я могу использовать селектор CSS или методы XPath для выбора интересующего меня содержимого. Однако эти методы не работают для выбора оценок рецензентов. Например, на следующей странице: https://www.yelp.com/user_details_reviews_self?userid=0S6EI51ej5J7dgYz3-O0lA. Селектор CSS для первого рейтинга — «.stars_2». Однако, если я использую этот селектор в своем коде RSelenium следующим образом:

     ratings=remDr$findElements('css selector','.stars_2')

     ratings=unlist(lapply(ratings, function(x){x$getElementText()}))

Я получаю НУЛЬ. Я думаю, причина в том, что рейтинг на самом деле является изображением. Я вставляю небольшую часть исходного кода страницы здесь:

            <div class="review-content">
            <div class="review-content">
            <div class="biz-rating biz-rating-very-large clearfix">
            <div>        
            <div class="rating-very-large">
            <i class="star-img stars_2" title="2.0 star rating">
          <img alt="2.0 star rating" class="offscreen" height="303" src="//s3-media4.fl.yelpcdn.com/assets/srv0/yelp_styleguide/c2252a4cd43e/assets/img/stars/stars_map.png" width="84">
    </i>
</div>


    </div>

По сути, если я могу извлечь текст из class="stat-img stars_2" или title="2.0 star rating", тогда все в порядке. Может ли кто-нибудь помочь мне в этом?


person Allen    schedule 15.03.2016    source источник
comment
Пожалуйста, добавьте свой код   -  person HubertL    schedule 16.03.2016
comment
Спасибо, добавил код.   -  person Allen    schedule 16.03.2016
comment
Это запрещено Условиями использования Yelp (пункт 6 B iii).   -  person Gregor Thomas    schedule 16.03.2016
comment
Я просто использую это как практику на самом деле. Я не буду использовать его для каких-либо других целей. Мне просто любопытно, как бороться с такими сценариями.   -  person Allen    schedule 16.03.2016


Ответы (1)


Возможно, вы захотите попробовать что-то вроде этого подхода:

Использование API Yelp с R, пытаясь найти типы бизнеса, используя геокоординаты

хотя кажется, что некоторые люди сочли это устаревшим, я нашел полезный код на странице Yelp github:

https://github.com/Yelp/yelp-api/pull/88 https://github.com/Yelp/yelp-api/pull/88/commits/95009afde2b47e8244fda3d435f0476205cc0039

Удачи! :)

person Joe R    schedule 15.03.2016
comment
Спасибо! Но API может работать только на бизнес-уровне. Если я хочу извлечь отдельные рейтинги, я не думаю, что API может помочь. Поправьте меня, если я ошибаюсь. - person Allen; 16.03.2016