在python中使用硒直接在纯HTML源上解析

时间:2018-11-03 13:10:03

标签: python selenium web-crawler

出于速度等原因,我正在尝试通过将HTML源代码作为字符串提供给我编写的硒程序。我不希望它获取URL,也不希望它打开文件,我只想将包含该站点整个DIV部分的字符串传递给它,并对其进行解析。 这是我编写的模块的一部分:

source = driver.page_source
return {'containers': source}

在另一个模块中,

def get_rail_origin(self):
    return self.data['containers'].find_element_by_id('o_outDepName')...

我正在尝试对其进行解析,但是我得到了

  

AttributeError:“ str”对象没有属性“ find_element_by_id”

所以我如何在不打开任何文件或URL的情况下解析纯HTML源代码

1 个答案:

答案 0 :(得分:1)

Selenium与 live HTML DOM一起使用。如果要获取源代码然后进行解析,可以尝试使用lxml.html

def get_rail_origin(self):
    source = html.fromstring(self.data['containers'])
    return source.get_element_by_id('o_outDepName')

P.S。我假设self.data['containers']是HTML源代码