Вы пытаетесь найти что-то, чего не существует в данных, возвращаемых requests
.
Когда вы проверите requests.get(url).text
, вы, вероятно, увидите нечто похожее на:
<!--
Need permission to access data? Contact: DataAccess@datadome.co
-->
<html><head><title>You have been blocked</title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style></head><body style="margin:0"><p id="cmsg">Please enable JS and disable any ad blocker</p><script>var dd={'cid':'AHrlqAAAAAMAptz12-9nkWQAJcs_Yg==','hsh':'05B30BD9055986BD2EE8F5A199D973','t':'fe'}</script><script src="https://ct.datadome.co/c.js"></script></body></html>
что приводит к тому, что None
присваивается переменной repo
, и интерпретатор жалуется на несуществующий атрибут find_all()
для объекта типа None
.
Так что в основном вынеобходимо убедиться, что у вас есть правильные данные, прежде чем начать их обработку.Вы можете получить данные без блокировки, используя Selenium и ChromeDriver , как подсказывает KunduK в своем ответе.Вы можете получить ChromeDriver от http://chromedriver.chromium.org/