我试图从以下URL解析学术文献搜索引擎提供的链接: https://www.sciencedirect.com/search?qs=hydrogen&show=25&sortBy=date&years=2018
我在python3中使用beautifulsoupbs4,代码适用于几个测试URL,比如wikipedia,但是当我在上面的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)
知道为什么吗?我开始怀疑这个网站是否可以用解析器来保护。 谢谢!你知道吗
我使用了请求,但是通过包含用户代理,您应该可以获得100多个链接。你知道吗
输出:
如果您仍然想使用urllib,只需做一些小的修改:
既然@chitown88已经建议包含
User-Agent
,我想补充一点,您可能会使用internal API
,这是:https://www.sciencedirect.com/search/api?qs=hydrogen&show=25&sortBy=date&years=2018&navigation=true
这会快得多(当然,如果你的目标是获得文章的
URL
),然后你可以做一些类似的事情相关问题 更多 >
编程相关推荐