- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通过 Selenium 运行 headless (PhantomJS) 浏览器的网站有不同的时区,所以我得到了很多条目的错误日期。因此,我抓取的结果显示了错误的日期/时间(我在美国东部时间,看起来网站默认是格林威治标准时间)。
我正在从 this 中抓取信息网站。您可以通过之前关于 SO here 的问题了解我是如何抓取日期的。 .但请注意,我目前并没有抓取游戏时间,所以我不想将其纳入解决方案。
问了同样的问题here但我不知道如何测试检查网站默认时间的“明显”解决方案。我想有人会向客户请求时间并从我当前的时间中添加/减去小时数?有人可以告诉我该怎么做和/或是否有更好的方法。
编辑:我想要的是将网站抓取的数据从默认 (GMT) 更改为我的时间 (EST)。这将避免不得不增加时间;这些日期将反射(reflect)它们对我的意义。
据我所知:
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()
但我无法让它点击。我应该改为搜索类(class)吗?
最佳答案
更好的测试方法是使用 chromedriver 或类似的东西。好处是,您可以直观地检查您的脚本在做什么。这是一个示例代码(没有错误处理),可以执行您想要的操作。请注意,chromedriver.exe必须与脚本位于同一位置。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--lang=en")
chrome = webdriver.Chrome(chrome_options=chrome_options)
wait = WebDriverWait(chrome, 300)
import time
chrome.get("http://www.oddsportal.com/hockey/usa/nhl/results/")
dropdown = wait.until(EC.presence_of_element_located((By.ID,"user-header-timezone-expander")))
dropdown.click()
userHeader = chrome.find_element_by_id('user-header-timezone')
time.sleep(2)
ahref = userHeader.find_elements_by_tag_name('a')
for a in ahref:
print(a.get_attribute("text"))
if "Eastern Time" in a.get_attribute('text'):
a.click()
time.sleep(10)
chrome.close()
关于python - Selenium 刮 : changing timezone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35848043/
我尝试通过 Goutte 列表从流行的拍卖网络服务中抓取,但它们的部分代码是由 javascript 呈现的,问题是 Goutte 只返回没有 JS 作业的 DOM。因此,如果 symphony 是
我遇到了旧的工作代码无法正常运行的问题。 我的 python 代码正在使用漂亮的汤抓取网站并提取事件数据(日期、事件、链接)。 我的代码正在提取位于 tbody 中的所有事件.每个事件都存储在 中.
所以我期待着对这个 link 中出现的表格进行抓取. 为了抓取,我决定使用 Selenium 。 在我的第一次尝试中,我所做的是: driver = webdriver.Chrome(ChromeDr
所以我期待着对这个 link 中出现的表格进行抓取. 为了抓取,我决定使用 Selenium 。 在我的第一次尝试中,我所做的是: driver = webdriver.Chrome(ChromeDr
我通过 Selenium 运行 headless (PhantomJS) 浏览器的网站有不同的时区,所以我得到了很多条目的错误日期。因此,我抓取的结果显示了错误的日期/时间(我在美国东部时间,看起来网
尝试使用 beautiful soup 从网站上抓取表格以解析数据。我将如何通过它的标题来解析它?到目前为止,我什至无法打印整个表格。提前致谢。 代码如下: import urllib2 from b
我一直在使用 Selenium(Python Webdriver)抓取一个网站。当我尝试将它作为 click() 选项时,我收到了权限被拒绝的错误。完整堆栈跟踪: Traceback (most re
使用 Beautiful soup 和 Pandas 抓取网页以获取表格。其中一列有一些网址。当我将 html 传递给 pandas 时,href 丢失了。 有没有办法只为该列保留 url 链接? 示
我正在尝试抓取 table进入数据框。我的尝试仅返回表名称,而不返回每个区域的行内的数据。 这是我到目前为止所拥有的: from bs4 import BeautifulSoup as bs4 imp
我是一名优秀的程序员,十分优秀!