【发布时间】:2016-06-21 06:10:27
【问题描述】:
我通过 Selenium 运行无头 (PhantomJS) 浏览器的网站具有不同的时区,因此我得到了许多条目的错误日期。因此,我的抓取结果显示了错误的日期/时间(我在 EST,看起来网站默认为 GMT)。
我正在从this 网站上抓取信息。您可以通过 SO here 上的上一个问题了解我是如何抓取日期的。但是请注意,我目前没有抓取游戏的时间,所以我不想将其合并到解决方案中。
here 提出了同样的问题,但我不知道如何测试“明显”的解决方案来检查网站默认的时间。我想有人会向客户请求时间并从我当前的时间中添加/减去小时数?有人可以告诉我该怎么做和/或是否有更好的方法。
编辑:我想要将网站抓取的数据从默认 (GMT) 更改为我的时间 (EST)。这将避免不得不增加小时数;日期将反映它们对我的意义。
这是我所得到的:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
#from selenium.webdriver.support.select import Select
driver = webdriver.PhantomJS(executable_path=r'C:/phantomjs.exe')
driver.get('http://www.oddsportal.com/hockey/usa/nhl/results/')
zoneDropDownID = "timezone-content"
driver.implicitly_wait(5)
zoneDropDownElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(zoneDropDownID))
# Select(zoneDropDownID).select_by_visible_text("Eastern") # strobject has no attribute
test = zoneDropDownID.select_by_visible_text("Eastern").click() # TimeOut exception - not found
driver.close()
但我无法点击它。我应该改为搜索课程吗?
【问题讨论】:
-
在右上角您可以选择您的时区。我相信 EST = GMT-5。您可以使用 selenium 从下拉列表中选择正确的时区。这应该可以解决您的问题。
-
知道了,现在我需要弄清楚如何使用 Selenium 来做到这一点。比如:
Select(driver.find_element_by_class("selected")).select_by_value(15).click()?
标签: python selenium timezone phantomjs headless-browser