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

时间:2011-10-24 22:24:07

标签: python parsing lxml

我正在使用lxml解析给定网址的html文件。

例如:

link = 'https://abc.com/def'
htmltree = lxml.html.parse(link)

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

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

2 个答案:

答案 0 :(得分:17)

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

from lxml import html
from urllib2 import urlopen

html.parse(urlopen('https://duckduckgo.com'))

答案 1 :(得分:5)

来自lxml文档:

  

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

我在那个句子中没有看到HTTPS,所以我认为它不受支持。

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