我正在尝试检查在此网站上删除了多少某个项目。我用美丽的汤来检查div的数量。当我运行我的代码时,它只重复相同的值,即使丢弃更多项目也不会上升。这是我的代码:
import time
from bs4 import BeautifulSoup
from selenium import webdriver
url = "http://g2case.com/en"
browser = webdriver.Chrome()
browser.get(url)
running = True
while running:
for i in range(5):
soup = BeautifulSoup(browser.page_source, "html.parser")
milspecs = soup.findAll("div", {"class": "item milspec"})
print(len(milspecs))
time.sleep(3)
running = False
print "done"
答案 0 :(得分:0)
您需要实际获取新页面,并在循环内再次调用browser.get(url)
。实际上,您只获得一次页面并反复解析同一页面。这样,您每次都可以通过循环获取页面的当前版本。
while running:
for i in range(5):
# Be sure to actually fetch the new data
browser.get(url)
soup = BeautifulSoup(browser.page_source, "html.parser")
milspecs = soup.findAll("div", {"class": "item milspec"})
print(len(milspecs))
time.sleep(3)
running = False
作为旁注,绝对不建议用这样的脚本连续评估其他人的网站。如果可以的话,尝试找一个公共API,它可以让你访问网站下面的数据,而不是每隔3秒就抓一次。
答案 1 :(得分:0)
我并不是说你应该不断地向一些可能不喜欢它的网站发出请求,但是如果你想每隔3秒更新一次本地版本的网站,你也必须每次都获取它3秒。将browser.get(url)
移动到循环中,如下所示:
...
while running:
browser.get(url)
for i in range(5):
...