Как напечатать таблицы, извлеченные в виде списка в CSV-файлы с динамического сайта - PullRequest
0 голосов
/ 21 марта 2019

Цель: Хотите сохранить таблицы на каждой html-странице, указанной каждой ссылкой, хранящейся в моем файле CSV, а затем сможете сохранить / распечатать данные таблицы в файл CSV. Однако в моем коде у меня две проблемы.

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

           column1  column2  column3  column4
    row1   xxpage1  valuexx  xxpage2  valuexx
    row2   xypage1  valuexy  xypage2  valuexy
    

Что я получаю

           column1
 row1  xxpage  valuexx
       xypage1 valuexy
 row2  xxpage2 valuexx
       xypage2 valuexy

Кроме того, если я хочу транспонировать, как я могу это сделать? когда я делаю df.T или df.transpose () или numpy.transpose, это выдает ошибку, говорящую, что тип 'list' не может быть транспонирован.

ниже мой код

listofrows = []

df_links = pd.read_csv("links.csv")
links = df_links['#/itemDetail?itemId=BWKHURACAN40&uom=EA']

print(links)

numoflinks = len(links) + 1

print(numoflinks)

for i in range(0, 5):
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--headless')
    prefs = {'profile.managed_default_content_settings.images':2}
    chrome_options.add_experimental_option("prefs", prefs)
    driver = webdriver.Chrome(chrome_options=chrome_options) 
    print(i)
    url = "http://biggestbook.com/ui/catalog.html" + links[i]
    driver.get(url)
    expandSigns = WebDriverWait(driver,30).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".glyphicon-plus")))
    expandSigns[1].click()
    WebDriverWait(driver,20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "td")))
    table = driver.find_element_by_css_selector('table')
    html = table.get_attribute('outerHTML')
    print(html)
    df  = pd.read_html(html)
    listofrows.append(df)
    df[0].to_csv("output.csv")
    print(listofrows)
    for rows in listofrows: 
        with open('listofData.csv', 'w') as listofData: 
            for rows in listofrows: 
                rowlistwriter = csv.writer(listofData)
                rowlistwriter.writerow(rows)
    driver.quit()
    sleep(5)

пожалуйста, помогите мне с этим.

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