Python: очистить таблицу JavaScript и сохранить результат в виде файла csv без открытия браузера

99
11

Python: очистка веб-таблицы и сохранение данных в CSV файл : приведенный ниже код работает отлично, но как я могу достичь той же цели, что и очистка таблицы без открытия браузера? т.е. запустить процесс под землей. Код выглядит следующим образом.

import selenium.webdriver as webdriver
import contextlib
import csv
import json

@contextlib.contextmanager
def quitting(browser):
yield browser
browser.close()
browser.quit()

with quitting(webdriver.Chrome()) as driver:
url = "https://fantasy.premierleague.com/a/statistics/total_points"
driver.get(url)
id = 1;
data = []
idlist = [id]
for tr in driver.find_elements_by_xpath('//table[@class="ism-table ism-table--el"]//tr'):
tds = tr.find_elements_by_tag_name('td')
if tds:
data.append([id]+[td.text for td in tds])
#data[0] = id
id = id+1
#idlist = [id+1]
#n = len(data)
outfile=open('./result.csv','w')
wr = csv.writer(outfile, dialect='excel')
wr.writerows(data)
print(data)

спросил(а) 2017-06-16T16:18:00+03:00 2 года, 8 месяцев назад
1
Решение
61

самый быстрый подход - заменить драйвер хрома на phantomJS

with quitting(webdriver.PhantomJS()) as driver:
# initiates a phantomjs headless browser browser, runs underground

with quitting(webdriver.Chrome()) as driver:
# initiates a chrome browser the browser is visible on the screen

ответил(а) 2017-06-16T16:33:00+03:00 2 года, 8 месяцев назад
36

Вы можете использовать PhantomJS в качестве драйвера вместо хрома, чтобы открыть браузер без браузера. Вы можете скачать его здесь: http://phantomjs.org/download.html, добавить exe в папку Python35-32, а затем использовать его так же, как chrome driver, но вместо этого вы пишете:

with quitting(webdriver.PhantomJS()) as driver:

ответил(а) 2017-06-16T16:27:00+03:00 2 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема