【问题标题】:Running Python requests consecutively returns old website data连续运行 Python 请求会返回旧的网站数据
【发布时间】:2018-06-03 17:49:36
【问题描述】:

我正在尝试确定网站何时更新。我通过创建两个变量并在每个变量中请求相同的站点数据来做到这一点。然后在 while 循环中比较它们,在循环的每次迭代中更新一个变量(参见下面的代码)。随着时间在网站上的变化,网站 HTML 实际上每分钟都在变化。所以你会期望循环每分钟结束一次。

不幸的是,该站点似乎为每个附加请求发送相同的原始数据,因此 while 循环不会退出。为了重现问题,运行下面的代码几次,然后检查 HTML (origsite[4050:4114]) 中的时间,看看它是当前时间还是你第一次运行代码块的时间.

import time
import random
import sys
import requests

site = requests.get("http://www.supremenewyork.com/shop/all/").text
origsite = requests.get("http://www.supremenewyork.com/shop/all/").text

n = 1

while (origsite == site): 
    x = round(random.uniform(0.8,1.2),3)
    time.sleep(x)
    origsite = requests.get("http://www.supremenewyork.com/shop/all/").text
    print(n)
    n = n + 1
print("site changed")

这是请求的已知问题吗?还是网站故意发送旧信息?我尝试使用 VPN 更改我的 IP,但它仍然返回旧数据。是否有另一种方法来测试站点是否已更改?下面是一个使用旧数据的例子。 origsite 正在存储站点数据运行前 5 分钟的数据。

origsite[4050:4114]
Out[94]: b'ime data-timezone-offset="3600"><b>04/06/2018 03:11am</b> <span '

site[4050:4114]
Out[95]: b'<b>04/06/2018 03:16am</b> <span id="time-zone-name">LDN</span></'

【问题讨论】:

  • 什么是 siteTest ?
  • 对不起。旧变量,应该是“站点”
  • 在我的电脑上进行测试时,您的代码运行良好。该网站确实发生了变化。
  • @Gelineau,对我来说它第一次运行良好......但是如果我运行代码几次它开始存储旧值。您是否检查了 origsite 变量中的时间?感谢您的帮助!
  • 在我的环境中,它确实发生了变化,但两次变化之间的秒数并不总是相同的。站点已更改 120 站点已更改 60 站​​点已更改 61 站点已更改 156 站点已更改 61 站点已更改 119 站点已更改 59 站点已更改 58 站点已更改 174 站点已更改 73 站点已更改 31 站点已更改 31 站点已更改, 31 站点更改, 15 站点更改, 58 站点更改, 58 站点更改, 118 站点更改, 23 站点更改, 29 站点更改, 9 站点更改, 53 站点更改, 31 站点更改, 32 站点更改, 30 站点更改, 120网站已更改,60

标签: python selenium beautifulsoup python-requests


【解决方案1】:

不幸的是,似乎没有 Selenium/requests 解决方案。我通过使用来自 splinter 的浏览器解决了这个问题。调整后的代码如下:

from splinter import Browser
browser = Browser('firefox')
browser.visit(mainUrl + cat)
origsite = browser.html
site = browser.html

n = 1

while (origsite == site): 
    x = round(random.uniform(0.8,1.2),3)
    time.sleep(x)
    origsite = browser.html
    print(n)
    n = n + 1
print("site changed")

【讨论】:

    猜你喜欢
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    相关资源
    最近更新 更多