我正在尝试在Python中构建一个简单的scraper,它将通过CGI在Web服务器上运行。基本上它将返回由URL中传递给它的参数确定的值。我需要BeautifulSoup来处理Web服务器上的HTML页面。但是,我使用的是HelioHost,它没有给我shell访问权限或pip等。我只能使用FTP。一个BS网站,它说你可以直接提取它并使用它而无需安装。
所以我在Win7机器上获得了tarball,使用7-zip删除bz2压缩,然后使用tar压缩,这给了我一个bs4
文件夹和一个setup.py
文件。我通过ftp将完整的bs4
文件夹传输到python脚本所在的cgi-bin
目录。我的脚本代码是:
#!/usr/bin/python
import cgitb
cgitb.enable()
import urllib
import urllib2
from bs4 import *
print "Content-type: text/html\n\n"
print "<html><head><title>CGI Demo</title></head>"
print "<h1>Hello World</h1>"
print "</html>"
但它给了我一个错误:
/home/poiasd/public_html/cgi-bin/lel.py
6 import urllib
7 import urllib2
8 from bs4 import *
9
10 print "Content-type: text/html\n\n"
bs4 undefined
SyntaxError: invalid syntax (__init__.py, line 29)
args = ('invalid syntax', ('/home/poiasd/public_html/cgi-bin/bs4/__init__.py', 29, 6, 'from .builder import builder_registry\n'))
filename = '/home/poiasd/public_html/cgi-bin/bs4/__init__.py'
lineno = 29
msg = 'invalid syntax'
offset = 6
print_file_and_line = None
text = 'from .builder import builder_registry\n'
如何通过CGI使用bs4
模块?我该如何安装但不安装它?我可以将我在PC上使用的BeautifulSoup转换为包含所有代码的小BeautifulSoup4.py
吗?
答案 0 :(得分:0)
您正在使用的Python版本尚不支持PEP 328 Relative Imports;例如Python 2.4或更早版本。 BeautifulSoup 4需要Python 2.7或更高版本。
据推测,您无法升级到较新的Python版本。在这种情况下,您可以尝试使用BeautifulSoup 3;它会有一些错误,你会丢失一些功能,但至少你可以解决语法错误。
但是,我注意到HelioHost会list Python 2.7 as supported。