Я пытаюсь разобрать ссылки, предоставленные поисковой системой для академической литературы, по следующему URL: https://www.sciencedirect.com/search?qs=hydrogen&show=25&sortBy=date&years=2018
Я использую Beautifulsoup BS4 с Python 3, и код работает для нескольких тестовых URL, таких как Википедия, но когда я пробую его по вышеуказанному URL, я получу только 15 результатов из верхних и нижних колонтитулов страницы, а не> 100, включая фактические результаты поисковой системы.
Вот пример HTML, которыйЯ пытаюсь извлечь:
<a href="/science/article/pii/S0360319918337960"
class="result-list-title-link u-font-serif text-s" data-rank="1"
data-docsubtype="fla" data-hack="#"><em>Hydrogen</em> integration in power-to-gas networks</a>
и вот мой код:
from urllib.request import urlopen
from bs4 import BeautifulSoup
import ssl
# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
url = "https://www.sciencedirect.com/search?qs=hydrogen&show=25&sortBy=date&years=2018"
html = urlopen(url, context=ctx).read().decode('utf-8')
soup = BeautifulSoup(html, "html.parser")
count = 0
for link in soup.find_all('a'):
count += 1
print(link.get('href'))
print(count)
Есть идеи, почему?Я начинаю задумываться, можно ли защитить сайт от парсеров.Большое спасибо!