2014-12-07 49 views
0

我試圖建立在Python簡單的刮刀,將通過CGI在Web服務器上運行。基本上它會返回一個由URL中傳遞給它的參數所決定的值。我需要BeautifulSoup來處理Web服務器上的HTML頁面。但是,我使用的HelioHost,它不會給我殼牌訪問或點子等我只能使用FTP。一個BS網站,它說,你可以直接解壓縮並使用它,而無需安裝。在CGI使用BeautifulSoup無需安裝

所以我得到了我的Win7機器上的壓縮包,使用7-zip去除bz2壓縮,然後tar壓縮,這給了我一個bs4文件夾和一個setup.py文件。我將完整的bs4文件夾轉移到我的cgi-bin目錄,python腳本通過ftp找到。我的腳本代碼是:

#!/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

Python版本2的這是什麼?看起來你正在使用Python 2.4或更早版本; BeautifulSoup 4需要Python 2.7或更高版本,但* *可能*也適用於2.6。 – 2014-12-07 10:29:17

+0

[BeautifulSoup 3](http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html)適用於較舊的Python 2版本;它會有一些錯誤,並且缺少一些更新的功能,但也許它會滿足您的需求。 – 2014-12-07 10:31:54

+0

的Martijn Pieters的感謝一噸,我是2.4,任何BS3一個Python文件的工作就像一個魅力:) – poiasd 2014-12-07 11:15:47

回答

0

您正在使用Python版本尚不支持PEP 328 Relative Imports;例如Python 2.4或更高版本。 BeautifulSoup 4需要Python 2.7或更新版本。

大概你不能升級到較新的Python版本。在這種情況下,您可以嘗試使用BeautifulSoup 3;它會有一些錯誤,你會錯過一些功能,但至少你可以通過語法錯誤。

然而,我注意到,HelioHost確實list Python 2.7 as supported

+0

即使我在500錯誤頁面看到python 2.7,但cgi調試頁面顯示2.4 – poiasd 2014-12-07 11:47:28

+0

@ user3857675:或許您可以嘗試使用'#!/ usr/bin/python2.7',但您可能想要問Helios支持。我沒有看到他們的頁面上有任何幫助,他們的Snakecharmer樣本已關閉,論壇頁面超時。 – 2014-12-07 11:51:14