Beautifulsoup получает контент, отличный от реального текста - PullRequest
0 голосов
/ 12 января 2020

Как гласит заголовок; контент, который я получаю, отличается от реального контента на странице. Я пытаюсь получить информацию "href" и текст внутри тега "p" (class = center-block) из определенной группы тегов. При попытке получить атрибут «href» по ссылке (вторая ссылка ниже), он возвращает текст «/ Login» вместо того, что находится внутри атрибута href. И точно так же, когда я пытаюсь получить внутренний текст тега «p», он возвращает текст «Название компании». Таким образом, он полностью возвращает значения, отличные от реального содержимого. Я мог получить доступ к большинству других, но не смог получить фактическое содержимое этих двух элементов, даже если я мог видеть фактическое содержимое при проверке элементов в браузерах.

Python код:


r = requests.get('https://www.examplesite.com/winners', headers=headers)
soup = BeautifulSoup(r.content, 'lxml')

list_of_winners = [item for item in soup.find_all('div', class_='bottom')]
list_of_winners.remove(list_of_winners[0]) # 0 indexed element is none, remove it from the list.

    index_counter = 0    # index counter for dictionaries
    for i in list_of_winners:

        ## Get the link 
        self.contest_link[index_counter] = i.find('a')['href']

        ## Get the title
        self.contest_title[index_counter] = i.find('p', class_='center-block').text.strip()

        index_counter += 1
    index_counter = 0   # Reset the index counter

Код html:

<div class="bottom">
  <div class="likes_count">
    <a href="javascript:void()" style="color: #333;" class="contest-like-unlike" data-type="like" data-contest-id="24454">
        <i class="fa fa-heart-o"></i>
    </a>
    <span class="popover_win">9 Likes</span>
  </div>
  <a style="float: right" href="https://www.example.com/retail-business/retail-business-24604">
   <p class="center-block">Retail Business</p>
  </a><span>&nbsp;</span>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...