Не могу написать дату в соответствии с содержанием источника - PullRequest
0 голосов
/ 31 августа 2018

Я написал скрипт на python в сочетании с селеном для анализа некоторого динамического содержимого с веб-страницы и записи их в файл CSV соответственно. Следующий скрипт может сделать это без ошибок, за исключением одной вещи the date.

Если вы посмотрите на содержимое этого сайта, вы увидите, что в этих табличных данных не указан год.

Однако, когда я щелкаю по любой ячейке под заголовком столбца Date в выходном файле, Excel по умолчанию считает его текущим годом, тогда как the date должен быть 2004. Как я могу сделать год 2004 в соответствии с тем, что показано на изображении ниже2?

Скрипт, с которым я пытаюсь:

import csv
import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = "http://info.nowgoal.com/en/League/2004-2005/36.html"

def get_information(driver,link):
    driver.get(link)
    for items in wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR,'table#Table3 tr')))[2:]:
        try:
            date = items.find_elements_by_css_selector("td")[1].text.split("\n")[0]
            date = datetime.datetime.strptime(date, '%m-%d').strftime('%d-%B')
        except Exception: date = ""
        try:
            match_name = items.find_elements_by_css_selector("td")[2].find_element_by_tag_name("a").text
        except Exception: match_name = ""
        writer.writerow([date,match_name])
        print(date,match_name)

if __name__ == '__main__':
    driver = webdriver.Chrome()
    wait = WebDriverWait(driver,10)
    with open("outputfile.csv","w",newline="") as infile:
        writer = csv.writer(infile)
        writer.writerow(['Date','Match name'])
        try:
            get_information(driver,url)
        finally:  
            driver.quit()

Вот так отображается дата в CSV-файле: enter image description here

Это то, что вы можете увидеть на этой веб-странице :

enter image description here

1 Ответ

0 голосов
/ 31 августа 2018

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

import datetime

date = "05-15"
date = datetime.datetime.strptime(date, '%m-%d').replace(year=2004).strftime('%d-%B-%Y')

print(date)

Это будет отображать:

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