【发布时间】:2012-04-04 06:01:14
【问题描述】:
我正在尝试使用 Python 2.7 创建一个程序,该程序从不同的投注网站(例如 betfair、ladbrokes 等)检索投注赔率以进行统计分析。我对 python 还很陌生(我对所有的 IT 术语都感到很挣扎),但我已经做了一些研究,并提出了以下结构。
from urllib import urlopen
import re
response = urlopen('http://beta.betfair.com/football/event?id=26821411')
html = response.read()
jay = re.compile(b'.*id="m57290-sel1_105142518-58805-0-back"><span class="price">(.*)</span></button>')
jay2 = re.findall(jay,html)
print(jay2)
这应该去必发网站拉一定的赔率并打印出来,但我什么也没得到!
我也尝试过合并 Beautifulsoup,但我的 mac 似乎没有正确安装它或其他东西。我不断得到
“ImportError: 没有名为 beautifulsoup 的模块”
当我尝试从 BeautifulSoup 导入 BeautifulSoup 时。我尝试使用 easyinstall 进行安装,并且还运行了 setup.py 脚本。
scrapy 的类似场景。
我做了一些进一步的研究,Java/javascript 经常出现...
有人可以帮忙吗?
提前致谢
【问题讨论】:
-
你的倾向是正确的。您需要比正则表达式更适合该任务的东西。 BeautifulSoup 是——或者至少在过去——仅仅是 Python 代码。这意味着,要安装它,您可以将文件放在 Python 路径上的任何位置。
-
您是否尝试过找出问题所在?
-
@bernie 谢谢。这可能是一个非常愚蠢的问题,但鉴于我实际上只是从一两本 python 编程书籍中阅读了部分内容,很多这对我来说是新的。你如何手动“把在 Python 路径上的任何位置文件”Karl Knechtel 感谢您花时间提供帮助。它最有可能与这一行有关 "jay = re.compile(b'.*id="m57290-sel1_105142518-58805-0-back">(.*)')" 因为我能够使用相同的代码(即标题、标题等)抓取同一网站的其他部分。底部的 Skizz 答案似乎支持这一点......
标签: javascript python web-scraping python-2.7