Импортировать данные из tr balise с python - PullRequest
0 голосов
/ 17 июня 2020

моя цель - извлечь данные из таблицы на этом веб-сайте: https://www.coteur.com/match/cotes-start-stromsgodset-rid1106841.html

Данные хранятся в tr balise, после импорта всех tr balise благодаря xpath я проверяю номер элементов в 3 первые строки, но пусто. Если мой код в порядке, у меня должно быть [6 6 6]

Вот мой код:

#!/usr/bin/python3
# -*- coding: utf­-8 ­-*-

from selenium import webdriver
from bs4 import BeautifulSoup
import requests
import lxml.html as lh
import pandas as pd

url = 'https://www.coteur.com/match/cotes-start-stromsgodset-rid1106841.html'

#Create a handle , page, to handle the contents of the first soccer game
page = requests.get(url)

#Store the contents of the website under doc
doc = lh.fromstring(page.content)

#Parse data that are stored between <tr>..</tr> of HTML
tr_elements = doc.xpath('//tr')

#Check the length of the first 3 rows
a = [len(T) for T in tr_elements[:3]]
print(a)

Вот результат:

hao@hao-ThinkPad-T420:~$ ./extractodds.py 
[]

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Я пробовал ваш метод:

#Parse data that are stored between <tr>..</tr> of HTML
tr_elements = doc.xpath('//table[@id="TableCoteHistory"]//tr[@class and @role]')

#Check the length of the first 5 rows
a = [len(T) for T in tr_elements[:5]]
print(a)

Он ничего не меняет для меня, всегда пустой вывод

0 голосов
/ 18 июня 2020

Вам следует исправить выражение XPath. Вы должны выбрать tr элементов из таблицы:

//table[@id="TableCoteHistory"]//tr[@class and @role]

Вывод: 11 элементов длиной 6.

...