Создать и Excel документ с использованием Selenium - PullRequest
0 голосов
/ 22 ноября 2018

Привет, я новичок в Python и в настоящее время работаю над книгой «Автоматизируйте скучные вещи с помощью Python».Я пытаюсь очистить веб-сайт, который требует логин.Приведенный ниже код работает до определенного момента и сохраняет необходимую информацию в «таблице цен».Мне нужно получить это в файл Excel или .txt, есть ли способ сделать это с помощью селена?

Будучи новичком и не полностью понимая, есть ли лучший способ сделать это с запросами и bs4?Кажется глупым открывать браузер, чтобы сделать это, но я не знаю другого пути.

Заранее спасибо.

from selenium import webdriver
import openpyxl, requests, bs4
import time

# opens website in Firefox
browser = webdriver.Firefox()
browser.get('https://somewebsite/somepage)

# find a username element and passes the password
emailElem = browser.find_element_by_id('Enter user name')
emailElem.send_keys('*username*')

# finds the password element and passes the password
passwordElem = browser.find_element_by_name('passwd')
passwordElem.send_keys('*password*')
passwordElem.submit()

#allows the browser to open but may not be required
time.sleep(2)

# selects a new webpage 
browser.get('https://somewebsite/pricing')

# on the new webpage there is an element table 
pricetable = browser.find_element_by_id('Pricetable')

1 Ответ

0 голосов
/ 22 ноября 2018

Вы можете легко сохранить таблицу в формате CSV, файлы CSV - это форматы файлов, которые содержат значения в виде простого текста, разделенные запятыми.Файлы CSV можно открыть с помощью любой программы для работы с электронными таблицами: Microsoft Excel, Open Office, Google Sheets и т. Д.

import csv

#....
pricetable = browser.find_element_by_id('Pricetable')
with open('pricetable.csv', 'a') as f:
    wr = csv.writer(f)
    for row in pricetable.find_elements_by_css_selector('tr'):
        wr.writerow([d.text for d in row.find_elements_by_css_selector('td')])
...