Форум сайта python.su
Всем привет, если кто может помочь, разъясните.
Возникла такая проблема:
Есть страница - http://www.betexplorer.com/soccer/austria/erste-liga/a-salzburg-a-klagenfurt/rX3csmr3/
При парсинге ищу строчку с данными:
“Average odds exchanges not included in calculation 2.54 3.37 2.48”
Вот, собственно, то, что нужно достать и часть кода, где это якобы хранится:
Но почему-то когда парсю, то питон не видит этот код и пишет “None”.
В свою очередь этот сайт ссылает на некий другой сайт:
“Betting odds service provided in cooperation with OddsPortal.com”
Видимо, он оттуда тянет эту информацию. А как тогда быть? Где искать её и откуда тянуть? Спасибо.
Офлайн
import urllib.request from bs4 import BeautifulSoup html = urllib.request.urlopen('http://www.betexplorer.com/soccer/austria/erste-liga/a-salzburg-a-klagenfurt/rX3csmr3/ ').read() soup = BeautifulSoup(html) div = soup.find('div', id = 'odds-content') print(div)
Офлайн
Нужные Вам данные отрисовывает js. Попробуйте загрузить страницу через Selenium, а потом работайте с ней через bs
Ну или смотрите в консоли браузера в каком запросе приходят данные и посылайте запросы за данными напрямую.
Отредактировано ayb (Авг. 1, 2015 08:32:09)
Офлайн
Установил selenium. Создал файл selenium.py, ввожу, как написано в интернете:
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get('http://www.betexplorer.com/soccer/austria/erste-liga/a-salzburg-a-klagenfurt/rX3csmr3/') assert "Python" in driver.title elem = driver.find_element_by_name("q") elem.send_keys("pycon") elem.send_keys(Keys.RETURN) assert "No results found." not in driver.page_source
>>> Traceback (most recent call last): File "C:\Documents and Settings\Александр\Рабочий стол\selenium.py", line 1, in <module> from selenium import webdriver File "C:\Documents and Settings\Александр\Рабочий стол\selenium.py", line 1, in <module> from selenium import webdriver ImportError: cannot import name 'webdriver' >>>
Офлайн
Посылайте запросы по этим адресам :
Победа\Ничья
Тоталы
Фора
1x 12 x2
Обе забьют
В параметре e указываете матч. Правда там приходит хтмл, но так всяко лучше будет.
Вот небольшой пример парсинга линии 1X2 :
import requests import lxml.html event_code = '2XSluIdK' url = 'http://www.betexplorer.com/gres/ajax-matchodds.php?t=n&e={}&b=1x2'.\ format(event_code) odds = requests.get(url).json()['odds'] data = lxml.html.fromstring(odds) odds_data = {} for item in data.xpath('//*[@id="sortable-1"]//tbody')[0]: odds_current = [] for i in item.getchildren(): if i.tag == 'th': bookmaker = i.getchildren()[0].text_content().strip() if i.tag == 'td' and i.get('class') != 'unsortable tv': odds_current.append(i.get('data-odd')) odds_data[bookmaker] = odds_current
Отредактировано ayb (Авг. 2, 2015 11:09:26)
Офлайн
russiaпереименовать, происходит конфликт имен.
Создал файл selenium.py
Офлайн
russia
И что это? Всё сделано по инструкциям, а кукиш.
Офлайн