【问题标题】:Selenium driver.get() modifying URLSelenium driver.get() 修改 URL
【发布时间】:2018-01-04 16:22:38
【问题描述】:

我有一个网络爬虫设置来遍历不同的日期并提取历史统计数据并将它们保存到 DF。直到今天我尝试更新我的数据库时,这一直运行良好。代码如下:

myDate = startDate
while myDate < endDate:
    dateFormat = "{date.month:02}{date.day:02}{date.year}".format(date=myDate)
    url = "http://www.example.com/?date="+dateFormat

    driver.get(url)
    print(url)

    time.sleep(3)
    html = driver.page_source

所以我添加了打印命令,只是为了查看它发送到 chrome 的 URL,它反映了正确的 URL。但是,一旦页面加载,它会在 URL 的末尾添加一个 &,后跟日期,页面将不会按预期加载。我测试了复制和粘贴格式化 URL 的功能,它还添加了 & 但是如果你手动输入地址它不会?

所以基本上我的脚本发送 http://www.example.com/?date=11272017

但是返回的网址是 http://www.example.com/?date=11272017&date=11272017 将我重定向到页面上的当前日期。希望这是有道理的。

我正在考虑将 driver.get 切换为 sendkeys 命令,但我不知道如何让它与 URL 一起使用。我还尝试在将 URL 放入浏览器后对其进行操作并剥离 & 但它只是再次添加它......对此的任何帮助将不胜感激!

【问题讨论】:

  • date=myDate? ...
  • 是的基本语法错误,对此感到抱歉,在发布此问题后已修复。

标签: python selenium


【解决方案1】:

啊!我已经想通了。该网页曾经是常规的 HTTP,最近他们已将所有页面更改为 HTTPS。将这个问题留给可能遇到同样问题的任何人。这么小的东西让我难倒了一段时间!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    相关资源
    最近更新 更多