Собрать/разобрать коэффициенты ставок с помощью Python 2.7

Я пытаюсь создать процедуру с Python 2.7, которая извлекает коэффициенты ставок с разных веб-сайтов для ставок (таких как betfair, ladbrokes и т. д.) для статистического анализа. Я довольно новичок в python (я борюсь со всем ИТ-жаргоном), но я провел некоторое исследование и придумал следующую структуру.

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)

Это должно было пойти на сайт betfair, получить определенные шансы и распечатать его, но я ничего не получил!

Я также пытался включить Beautifulsoup, но мой Mac, похоже, не устанавливает его должным образом или что-то в этом роде. я продолжаю получать

«ImportError: нет модуля с именем BeautifulSoup»

когда я пытаюсь импортировать BeautifulSoup из BeautifulSoup. Я попытался установить с помощью easyinstall, а также запустил сценарий setup.py.
Аналогичный сценарий для scrapy.
Я провел дополнительное исследование, и Java/javascript встречается довольно часто...
Может кто-нибудь пожалуйста помоги?

заранее спасибо


person Pyfon    schedule 19.03.2012    source источник
comment
Ваш наклон правильный. Вам нужно что-то более подходящее для задачи, чем регулярное выражение. BeautifulSoup — это — или, по крайней мере, было в прошлом — исключительно код Python. Это означает, что для его установки вы помещаете файл в любое место пути к Python.   -  person mechanical_meat    schedule 19.03.2012
comment
Вы пытались выяснить, где что-то идет не так?   -  person Karl Knechtel    schedule 19.03.2012
comment
@bernie спасибо. Вероятно, это действительно глупый вопрос, но, учитывая, что я буквально только что прочитал разделы из одной или двух книг по программированию на Python, многие из них для меня новые. Как вручную поместить файл в любое место на вашем пути к Python. Карл Кнехтель, спасибо за то, что нашли время помочь. скорее всего, это связано с этой строкой потому что я могу очистить другие разделы того же веб-сайта с тем же кодом (например, заголовки, заголовки и т. д.). Ответ Skizz внизу, кажется, поддерживает это...   -  person Pyfon    schedule 22.03.2012


Ответы (3)


Я обнаружил, что когда у меня на Mac установлено несколько версий Python, сложно указать, в какой версии я хочу установить модуль. Я обхожу это с помощью virtualenv, а затем устанавливаю именно те модули, которые мне нужны, один за другим, используя pip. Вот введение в virtualenv: http://simononsoftware.com/virtualenv-tutorial/

По сути, после установки virtualenv вы можете создать автономную среду Python, изолированную от всего остального. В окне терминала процесс выглядит следующим образом:

Создайте виртуальную среду Python

$ virtualenv --python=python2.7 env

Активируйте его (так что теперь это «python» по умолчанию в вашем PATH)

$ source env/bin/activate

Установите что-нибудь (обратите внимание, что для этого вам не нужен «sudo», потому что это локальная установка python в любом каталоге, в котором вы работаете)

$ pip install scrapy

Как только вы закончите работу с виртуальной средой Python, деактивируйте ее следующим образом:

$ deactivate
person Brendan Wood    schedule 19.03.2012
comment
спасибо.... Мне удалось установить Virtualenv, но когда я пытаюсь создать виртуальную среду Python, я получаю -bash: $: команда не найдена... - person Pyfon; 22.03.2012
comment
$ указывает на приглашение терминала, а не на то, что вы должны ввести. Итак, для первой команды введите точно следующее без кавычек, а затем нажмите клавишу возврата/ввода: virtualenv --python=python2.7 env - person Brendan Wood; 22.03.2012
comment
я на самом деле пробовал оба, с и без $. без него я получаю ... Файл /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py, строка 1201, в _execute_child поднять дочернее исключение OSError: [Errno 2] Нет такого файла или каталог, который мне не подходит... - person Pyfon; 22.03.2012
comment
Да, мне тоже это кажется неправильным. У вас установлен Xcode? Эта тема может помочь: stackoverflow.com/questions/5658504/ - person Brendan Wood; 22.03.2012

Идентификатор "back-cell" меняется каждый раз при вызове страницы, поэтому ваше существующее регулярное выражение всегда будет давать сбой независимо от того, какую структуру вы используете.

person Skizz    schedule 20.03.2012
comment
спасибо за вклад.... Я предполагаю, что вы имеете в виду эту часть.. id=m57290-sel1_105142518-58805-0-back. Есть идеи как обойти проблему... - person Pyfon; 22.03.2012

Большинство веб-сайтов по ставкам (особенно хороших) имеют достойные XML-сервисы. Я предлагаю вам анализировать XML коэффициентов ставок, а не веб-сайт. Этот учебник будет очень полезен для начинающих синтаксического анализа XML: http://docs.python.org/2/library/xml.etree.elementtree.html

person Alkindus    schedule 03.01.2014