Python Web Scraper - Экспорт таблиц в Excel
Привет, ребята,
Я использовал stackru, чтобы узнать, как написать свой первый скрипт на Python. На самом деле я создаю веб-мастер, и мне нужна ваша помощь / мнение / руководство, чтобы продолжить мой маленький проект.
До сих пор я мог войти на сайт, получить доступ к нужной странице, очистить все таблицы, поместить данные в список, создать файл Excel.
Я бы хотел:
вместо очистки всех таблиц, я хотел бы получить только третью на HTML-странице
-экспорт списка в файле Excel
- узнать, есть ли решение очистить таблицу как есть и экспортировать ее в Excel, сохраняя тот же формат
from selenium import webdriver
from bs4 import BeautifulSoup
from xlwt import Workbook
browser = webdriver.Chrome()
browser.get("XXXXX")
# username
userElem = browser.find_element_by_xpath(".//*[@id='user_name_register']")
userElem.clear()
userElem.send_keys('XXXXX')
# Password
passwordElem = browser.find_element_by_xpath(".//*[@id='password_register']")
passwordElem.clear()
passwordElem.send_keys('XXXXX')
# Tick - keep me logged in
keeploggedin=browser.find_element_by_xpath(".//*[@id='persistent_cookie_p_register']")
keeploggedin.click()
# Login click
login=browser.find_element_by_xpath(".//*[@id='login_form']/fieldset/ul/li[4]/div/button")
login.click()
# Go to URL
link = "XXXXXXXXXXXXXX"
browser.get(link)
# Start scraping
html = browser.page_source
soup = BeautifulSoup(html)
lst = []
for tag in soup.find_all('table'): ##IS THERE A WAY TO TAKE ONLY THE THIRD TABLE? I tried soup.find_all('table')[3] but it didn't work.
txt = tag.text
print(txt)
lst.append(txt)
print(lst)
wb = Workbook()
sheet1 = wb.add_sheet('Paris')
sheet1.write(0,0,'TEST2')
wb.save('Rate Browser.xls')
2 ответа
Если вы хотите третий элемент, вы должны использовать
tags = soup.find_all('table')
tags[2]
это будет ваша третья таблица, а не теги [3], так как отсчет начинается с 0, а не с 1.
soup.find_all('table')[3]
не будет работать, потому что список начинается с нуля, поэтому используйте soup.find_all('table')[2]