У меня есть сайт с множеством таблиц, и я перебираю их, получаю данные из всех таблиц и экспортирую их в CSV-файл. У меня проблема в том, что в каждой таблице есть несколько классов 'td', и я хочу только пару из них, но я не знаю, как сузить их до того, что я хочу. когда я запускаю свой текущий код, я получаю лишние части таблицы, которые мне не нужны, и это делает мой CSV-файл очень грязным. Вот фрагмент кода html для страницы, содержащей информацию, которую я хочу.
<tr class="table_title">
<td class="sportPicksBorderL2 tanBg fourleft regular" nowrap="nowrap">
607 <a class="black" href="/college-basketball/teams/team-page.cfm/team/oakland">OAKLND</a>
</td>
<td class="sportPicksBorderL2 tanBg zerocenter regular" nowrap="nowrap"> 136.5 </td>
<td class="sportPicksBorderL2 tanBg zerocenter regular" nowrap="nowrap">28</td>
<td class="sportPicksBorderL2 tanBg zerocenter regular" nowrap="nowrap">32</td>
<td class="sportPicksBorderL2 tanBg zerocenter sub_title_red" nowrap="nowrap">60</td>
<td class="sportPicksBorderR2 tanBg zerocenter regular" nowrap="nowrap" width="100">Cover: +1.5 </td>
</tr>
<tr class="table_title">
<td class="sportPicksBorderL2 tanBg fourleft regular" nowrap="nowrap">
608 <a class="black" href="/college-basketball/teams/team-page.cfm/team/youngstown-state">YOUNG</a> <span class="sub_title_red">«</span>
</td>
<td class="sportPicksBorderL2 tanBg zerocenter regular" nowrap="nowrap"> -2.5 </td>
<td class="sportPicksBorderL2 tanBg zerocenter regular" nowrap="nowrap">24</td>
<td class="sportPicksBorderL2 tanBg zerocenter regular" nowrap="nowrap">37</td>
<td class="sportPicksBorderL2 tanBg zerocenter sub_title_red" nowrap="nowrap">61</td>
<td class="sportPicksBorderR2 tanBg zerocenter regular" nowrap="nowrap" width="100">Under: 121 </td>
</tr>
Вот то, что я запускаю, чтобы извлечь мои данные
import bs4 as bs
import urllib.request
from requests import get
import pandas as pd
from csv import writer
url = 'https://www.vegasinsider.com/college-basketball/scoreboard/scores.cfm/game_date/01-12-2020'
source = urllib.request.urlopen(url)
soup = bs.BeautifulSoup(source, 'lxml')
tables = soup.find_all('table', attrs={'class': 'sportPicksBorder'})
filename = 'C:\\Users\\mylocation\\Documents\\tables.csv'
with open(filename, 'w')as f:
data = []
csv_writer = writer(f)
for table in tables:
rows = table.find_all('tr')
for row in rows:
columns = row.find_all('td')
csv_writer.writerow([column.text.strip() for column in columns])
что я хочу - это класс = "черный" / a, в котором есть моя команда имя без красной стрелки, написанное им class = sportPicksBorderL2 class = sportPicksBorderR2
Мой оригинальный код возвращает эти 4 строки для каждой таблицы.
Final Score Score
Teams Odds 1 2 T ATS
847 ARIZNA -4 31 34 65 Over: 147
848 OREGST « 143.5 31 51 82 Cover: +21
Я хотел бы уклониться от этого.
ARIZNA -4 31 34 65 Over: 147
OREGST 143.5 31 51 82 Cover: +21
Я хочу убрать Â «, числа перед именами команд и первые 2 строки таблицы из того, что я собираю, но все еще являюсь новичком в изучении веб-страниц и python, мне трудно понять. Если у кого-то есть хороший учебный ресурс, я весь в ушах.