【发布时间】:2015-06-16 19:45:08
【问题描述】:
我正在使用 Julia,现在我正在尝试使用 PyCall 包,以便可以使用 BeautifulSoup 模块进行 Web 解析。我的 Julia 代码看起来像
using PyCall
pyinitialize("python3")
@pyimport bs4 #need BeautifulSoup
@pyimport urllib.request as urllib #need urlopen
url_base = "blah"
html = urllib.urlopen(url_base).read()
soup = bs4.BeautifulSoup(html, "lxml")
但是,当我尝试运行它时,我收到了有关 read() 函数的投诉。我一开始以为read() 会是一个内置的Python 函数,但是pybuiltin("read") 不起作用。
我不确定我可以导入什么 Python 模块来获取读取功能。我尝试导入io 模块并使用io.read(),但这不起作用。此外,使用 Julia 的内置读取函数不起作用,因为 urllib.urlopen(url_base) 是 PyObject。
【问题讨论】:
-
您使用的是哪个 Python 版本?带有 urllib 的 Python 2 和 3 之间发生了一些变化:docs.python.org/2/library/urllib.html
-
我现在正在使用 Python 3。我有 urllib.request 作为我要导入的模块,尽管我将它重命名为 urllib 因为它更容易输入(我认为“。”不能在 Julia 中重载?)。