Не анализирует все данные - только заголовок таблицы - PullRequest
1 голос
/ 16 апреля 2020

Просто не до конца понимаю импорт даты и времени, так как когда я анализирую для получения данных, я не могу получить полные данные таблицы

from datetime import datetime, date, timedelta
import requests
import re
from bs4 import BeautifulSoup

base_url = "http://www.harness.org.au/racing/results/?firstDate="

webpage_response = requests.get('http://www.harness.org.au/racing/results/?firstDate=')

soup = BeautifulSoup(webpage_response.content, "html.parser")

format = "%d-%m-%y"
delta = timedelta(days=1)
yesterday = datetime.today() - timedelta(days=1)

yesterday1 = yesterday.strftime(format)
enddate = datetime(2018, 1, 1)
enddate1 = enddate.strftime(format)
while enddate <= yesterday:
    enddate += timedelta(days=1)
    enddate.strftime(format)
    new_url = base_url + str(enddate)
    soup12 = requests.get(new_url)
    soup1 = BeautifulSoup(soup12.content, "html.parser")
    table1 = soup1.find('table', class_='meetingListFull')
    for table2 in table1.find('td'):
        name = table2.find('a')

Я хочу повторить все имена из списка дат в в конечном итоге получить все данные href и scrap из всех прошлых результатов. Ниже на самом деле то, что я хочу получить из данных таблицы 1, но он не обнаруживается.

Globe Derby Park

Таким образом, целью является создание href для повторения, чтобы получить все href за последние 2 года, повторить итерации по таблицам и затем получить данные от каждого href ниже

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете попробовать следующий код для вашего l oop:

for tr in table1.find_all('tr'):
    all_cells = tr.find_all('td')
    if all_cells:
        name_cell = all_cells[0]
        try:
            text = name_cell.a.text.strip()
        except:
            continue
        else:
            print(text)

find_all возвращает итеративный список, и, поскольку вы ищете только имя, просто используйте первую ячейку.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...