我正在尝试使用Python和BeautifulSoup抓取当前美国英语版Firefox的Firefox下载页面。我使用的是Python 2.4.3版。
我相信我很接近,但可以用一些指示来引导我朝着正确的方向前进。
这是我目前的代码:
import urllib2
from BeautifulSoup import BeautifulSoup
url = "http://www.mozilla.org/en-US/firefox/all/";
page = urllib2.urlopen(url)
soup = BeautifulSoup(page)
#version = soup.find('tr', {'id': 'en-US'}).find('td', {'class': 'download win'}.find('a', {'product': 'firefox'})
version = soup.find('tr', {'id': 'en-US'}).find('td', {'class': 'download win'})
print version # Put a mail command here
未注释的行输出以下内容:
<td class="download win"><a href="https://download.mozilla.org/?product=firefox- 23.0.1&os=win&lang=en-US" title="Download for Windows">Download</a></td>
注释行输出错误:
File "firefox-version.py", line 11
print version # Put a mail command here
^
SyntaxError: invalid syntax
我怀疑我检索的数据无法以指示Python处理返回结果的方式存储。我开始考虑使用find_all而不仅仅是find,但我不确定这是否会让我朝着正确的方向前进。任何线索都会有所帮助。谢谢。
答案 0 :(得分:1)
print version
语法在Python 2.4中运行正常,它不应该生成语法错误。验证该确实正在使用的版本,因为在Python 3.x中print version
将导致语法错误。只是为了确定,检查一下是否有效:print(version)
。