我有一个解析很多网页的应用程序,对于解析,我使用beautiful soup,它工作得很好,我不是在寻找解析器的替代品,我可以从我自己的计时和基准测试中看到,大部分时间是用web请求获取实际的html,而不是用beautiful soup实际解析它。 这是我的密码:
def get_html(url: str):
req = urllib.request.Request(
url,
data=None,
headers={'User-Agent': 'Chrome/35.0.1916.47'})
uClient = urllib.request.urlopen(req, context=ssl.SSLContext(ssl.PROTOCOL_TLSv1))
html = uClient.read()
uClient.close()
return html
现在,为了进行测试,我对这个进行了计时(使用一些随机url):
for i in range(20):
myhtml = get_html(url)
这平均花了我11.30秒,这是非常慢的,在我的应用程序中,我可能需要数百个来自url的htmls,所以显然我需要一个更快的解决方案。。。 顺便说一句,如果我向循环中添加一个漂亮的soup解析器,如下所示:
for i in range(20):
myhtml = get_html(url)
page_soup = soup(html, "html.parser")
这只需要12.20秒的平均时间,所以我可以肯定地说问题出在html上,而不是解析器上。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐