从html元素中提取CSS样式属性的快速方法

时间:2013-08-15 18:40:06

标签: python selenium webkit html-parsing phantomjs

出于机器学习的目的,我有一个html页面作为输入,以提取所有DOM元素的所有样式属性。所以,这是我的初步代码:

from selenium import webdriver

start = time.time()
driver = webdriver.PhantomJS()
driver.get('example page')
elements = driver.find_elements(By.XPATH, "//*[not(child::*)]") #select only leaf nodes
l = {}
css_properties=("line-height", "text-align","font-size", "font-style")

for i in elements:
    if i.text:
        #print time.time() - end_dl
        if i.text not in l:
            l[i.text] = {}
        for el in css_properties:
            l[i.text][el] = str(i.value_of_css_property(el))
            l[i.text]["text_length"] = len(i.text)

问题是这段代码花了很长时间来解析我的功能(~8s)。有人能以更快的方式思考吗?

1 个答案:

答案 0 :(得分:0)

你确定解析步骤花了这么长时间吗?

如果是这样,这里有几个选项......

  1. 尝试使用BeautifulSoup4解析DOM。
  2. 使用更快的硬件部署在云服务器上。您可以使用亚马逊EC2或digitalocean来收取按小时收费的内容。
  3. 在分布式系统上部署。