使用lxml时有什么关于https的协议?

Fla*_*ake 12 python parsing lxml

我使用lxml解析给定网址的html文件.

例如:

link = 'https://abc.com/def'
htmltree = lxml.html.parse(link)
Run Code Online (Sandbox Code Playgroud)

我的代码适用于大多数情况下的代码http://.但是,我发现每个https://url,lxml只会得到一个IOError.有谁知道原因?可能,如何纠正这个问题?

顺便说一句,我想坚持lxml而不是切换到BeautifulSoup,因为我已经有了一个快速完成的程序.

Fre*_*Foo 19

我不知道发生了什么,但我得到了同样的错误.可能不支持HTTPS.不过,您可以轻松解决此问题urllib2:

from lxml import html
from urllib2 import urlopen

html.parse(urlopen('https://duckduckgo.com'))
Run Code Online (Sandbox Code Playgroud)

  • `from urllib.request import urlopen` for python3 (6认同)

kin*_*all 6

lxml文档:

lxml可以从本地文件,HTTP URL或FTP URL进行解析

我没有在任何地方看到该句子中的HTTPS,所以我认为它不受支持.

一个简单的解决方法是使用支持HTTPS的其他库来检索文件,例如urllib2,并将检索到的文档作为字符串传递给lxml.