转换一行(所有数据)并使用数据帧格式(pandas library python)拆分为10行数据?使用以下代码,非常感谢!
# -*- coding:UTF-8 -*-
from pyvirtualdisplay import Display
from bs4 import BeautifulSoup
from selenium import webdriver
display = Display(visible=0, size=(1024, 768))
display.start()
driver = webdriver.Firefox()
driver.get("http://www.fdmbenzinpriser.dk/searchprices/5/")
lines = [event.text for event in driver.find_elements_by_xpath('//table[@id="sortabletable"]')]
print lines
driver.close()
display.stop()
Ouutput:
[u' Pris Adresse\nTidspunkt\n\n* Denne pris er indberettet af selskabet Indberet pris\n 8.99 Odinsvej 2 4100 Ringsted 8 timer 47 m\n 9.09 Sdr.Havnegade 3 6000 Kolding 11 timer 39 m\n 9.09 Vestermarksvej 2 6600 Vejen 13 timer 27 m\n 10.99 Kastanievej 2 5800 Nyborg 17 timer 52 m\n 10.99 Vestvejen 95 6200 Aabenraa 17 timer 52 m\n 10.99 Gammel \xc5rhusvej 3 8940 Randers SV 17 timer 52 m\n 10.99 Frederiksv\xe6rksgade 87 3400 Hiller\xf8d 17 timer 52 m\n 10.99 Egelundsvej 5 2620 Albertslund 17 timer 52 m\n 10.99 B\xf8sbrovej 92B 8940 Randers SV 17 timer 52 m\n 10.99 Milnersvej 47 3400 Hiller\xf8d 17 timer 52 m']
预期产出:
Pris Adresse Tidspunkt
8.99 Odinsvej 2 4100 Ringsted 8 timer 47 m
9.09 Sdr.Havnegade 3 6000 Kolding 11 timer 39 m
9.09 Vestermarksvej 2 6600 Vejen 13 timer 27 m
10.99 Kastanievej 2 5800 Nyborg 17 timer 52 m
10.99 Vestvejen 95 6200 Aabenraa 17 timer 52 m
10.99 Gammel Århusvej 3 8940 Randers SV 17 timer 52 m
10.99 Frederiksværksgade 87 3400 Hillerød 17 timer 52 m
10.99 Egelundsvej 5 2620 Albertslund 17 timer 52 m
10.99 Bøsbrovej 92B 8940 Randers SV 17 timer 52 m
10.99 Milnersvej 47 3400 Hillerød 17 timer 52 m
答案 0 :(得分:1)
通过获取文本(event.text
),您将丢失有关已存在的html表的信息。
将其切换为获取outerHTML:
table = [event.get_attribute('outerHTML') for event in driver.find_elements_by_xpath('//table[@id="sortabletable"]')]
然后做:
import pandas as pd
df = pd.read_html(table[0])
结果是:
[ Unnamed: 0 Pris Adresse Tidspunkt
0 NaN 8.99 Odinsvej 2 4100 Ringsted 11 timer 55 m
1 NaN 9.09 Sdr.Havnegade 3 6000 Kolding 14 timer 48 m
2 NaN 9.09 Vestermarksvej 2 6600 Vejen 16 timer 35 m
3 NaN 10.99 Bøsbrovej 92B 8940 Randers SV 21 timer 1 m
4 NaN 10.99 Janesvej 9 2680 Solrød Strand 21 timer 1 m
5 NaN 10.99 Nyborgvej 114 5700 Svendborg 21 timer 1 m
6 NaN 10.99 Ishøj Strandvej 78 2635 Ishøj 21 timer 1 m
7 NaN 10.99 Vodskovvej 16 9310 Vodskov 21 timer 1 m
8 NaN 10.99 Sprogøvej 1 9800 Hjørring 21 timer 1 m
9 NaN 10.99 Hovedvejen 4 8361 Hasselager 21 timer 1 m
10 * Denne pris er indberettet af selskabet Indbe... NaN NaN NaN]
你必须在熊猫中进行一些清理,但你现有的代码非常接近。