Доброго времени суток!
Недавно начал учить Python и откопал у себя курс возрастом около 2 лет по парсингу. В первом уроке были примеры с сайтом Wordpress.org, там всё было хорошо, на сайте были изменения, но они касались больше наполнения, нежели структуры (вёрстки), а вот в следующем уроке рассказывается о парсинге табличных данных на примере сайта coinmarketcap.com, который претерпел изменения в структуре, как я понимаю, потому что в видео данный код получает все 100 значений, а сейчас только первые 10 и затем выдает ошибку AttributeError: 'NoneType' object has no attribute 'text'. Я понимаю почему возникает ошибка, программа "не видит" нужные данные, поскольку они подгружаются в процессе скроллинга к концу страницы, как мне кажется.
Как изменить данный код, чтобы он обрабатывал все 100 позиций с первой страницы этого сайта?
P.S. длина списка, собранного по тегу tr равна 100, значит строки с 11 по 100 считаются пустыми.
import requests
from bs4 import BeautifulSoup
def get_html(url):
r = requests.get(url)
return r.text
def get_page_data(html):
soup = BeautifulSoup(html, 'lxml')
trs = soup.find('table').find('tbody').find_all('tr')
print(len(trs))
for tr in trs:
tds = tr.find_all('td')
name = tds[2].find('a').find('p').text
print(name)
def main():
url = 'https://coinmarketcap.com'
get_page_data(get_html(url))
if __name__ == '__main__':
main()
Надеюсь услышать советы матёрых программистов и спасибо за внимание!