Если вы попытаетесь загрузить страницу без JavaScript, вы увидите, что элемент, который вы пытаетесь найти, не существует. Другими словами, вся страница LinkedIn загружается с Javascript (как одностраничные приложения . Фактически, BeautifulSoup работает как положено и анализирует полученную страницу, которая имеет код JavaScript и не та страница, которую вы ожидали.
>>> coverpage = r1.content
>>> coverpage
b'<html><head>\n<script type="text/javascript">\nwindow.onload =
function() {\n // Parse the tracking code from cookies.\n var trk =
"bf";\n var trkInfo = "bf";\n var cookies = document.cookie.split(";
");\n for (var i = 0; i < cookies.length; ++i) {\n if
((cookies[i].indexOf("trkCode=") == 0) && (cookies[i].length > 8)) {\n
trk = cookies[i].substring(8);\n }\n else if
((cookies[i].indexOf("trkInfo=") == 0) && (cookies[i].length > 8)) {\n
trkInfo = cookies[i].substring(8);\n }\n }\n\n if
(window.location.protocol == "http:") {\n // If "sl" cookie is set,
redirect to https.\n for (var i = 0; i < cookies.length; ++i) {\n
if ((cookies[i].indexOf("sl=") == 0) && (cookies[i].length > 3)) {\n
window.location.href = "https:" +
window.location.href.substring(window.location.protocol.length);\n
return;\n }\n }\n }\n\n // Get the new domain. For international
domains such as\n // fr.linkedin.com, we convert it to www.linkedin.com\n
var domain = "www.linkedin.com";\n if (domain != location.host) {\n
var subdomainIndex = location.host.indexOf(".linkedin");\n if
(subdomainIndex != -1) {\n domain = "www" +
location.host.substring(subdomainIndex);\n }\n }\n\n
window.location.href = "https://" + domain + "/authwall?trk=" + trk +
"&trkInfo=" + trkInfo +\n "&originalReferer=" +
document.referrer.substr(0, 200) +\n "&sessionRedirect=" +
encodeURIComponent(window.location.href);\n}\n</script>\n</head></html>'
Вы можете попробовать использовать что-то вроде Selenium .