使用python selenium来刮取时间数据

时间:2017-09-30 13:46:17

标签: python google-chrome selenium

我使用以下代码行来获取元素的utime。从输出中我可以看到我瞄准正确的区域并且utime属性存在于那里,但我仍然收到None的输出。我已经尝试多次重写data-utime属性,以确保它的格式正确。我在这里缺少什么?

代码:

   timeStampBox = post.find_element_by_css_selector('.fsm.fwn.fcg')
   timeStampBox = timeStampBox.find_element_by_class_name('_5pcq')

   print(timeStampBox.get_attribute('innerHTML'))
   print(timeStampBox.get_attribute('data-utime'))

输出:

<abbr title="Monday, September 4, 2017 at 6:11am" data-utime="1504530675" data-shorten="1" class="_5ptz"><span class="timestampContent" id="js_15">September 4 at 6:11am</span></abbr>
None

1 个答案:

答案 0 :(得分:1)

abbr元素是innerHTML timeStampBox,但 data-utime 不是属性{{ 1}}。

以下是我如何模仿你的情况:

timeStampBox

<html> <body> <div><abbr title="Monday, September 4, 2017 at 6:11am" data-utime="1504530675" data-shorten="1" class="_5ptz"><span class="timestampContent" id="js_15">September 4 at 6:11am</span></abbr></div> </body> </html> 元素是div元素的容器。我可以假装它是你的abbr元素。

timeStampBox

识别>>> from selenium import webdriver >>> driver = webdriver.Chrome() >>> driver.get('file://c:/scratch/temp.htm') 并获取其timeStampBox。和以前一样,我得到了innerHTML元素。

abbr

>>> timeStampBox = driver.find_element_by_tag_name('div') >>> timeStampBox.get_attribute('innerHTML') '<abbr title="Monday, September 4, 2017 at 6:11am" data-utime="1504530675" data-shorten="1" class="_5ptz"><span class="timestampContent" id="js_15">September 4 at 6:11am</span></abbr>' data-utime,因为None中不存在此属性。

timeStampBox

但它在>>> timeStampBox.get_attribute('data-utime')

abbr

我们故事的道德:直接搜索>>> abbr = driver.find_element_by_tag_name('abbr') >>> abbr.get_attribute('data-utime') '1504530675'