luoxiao.1106 发表于 2024-4-25 11:24

求补充网页刷新python脚本

请求帮忙写一个python脚本,基于以下代码补充。
from time import sleep
from selenium import webdriver
driver= webdriver.Edge() # 需要 下载 对应浏览器 驱动到 python 安装目录
driver.get("http://www.baidu.com") # 刷新网址
for i in range(10000): # 刷新次数
    driver.refresh() # 刷新网页
    sleep(30) # 30秒一次
需求:

[*]运行脚本时,自动弹出edge浏览器,显示页面(以上代码已测试可以)。
[*]刷新网页之后检测网页是否正常打开,如未正常打开,则记录系统时间到当前目录下的Err_Date.log中。
提前在这谢谢各位大佬。

boy666 发表于 2024-4-25 11:24

通用的,baidu能换成任意页面:
from time import sleep
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
import datetime
import requests

# 初始化Edge浏览器
driver = webdriver.Edge()

# 打开百度网页
driver.get("http://www.baidu.com")


# 定义一个函数来检查页面状态
def check_page_status(url):
    try:
      response = requests.get(url)
      if response.status_code == 200:
            return True
      else:
            return False
    except:
      return False


# 循环刷新网页
for i in range(10000):
    driver.refresh()# 刷新网页
    sleep(3)# 30秒一次

    # 记录刷新时间
    refresh_time = datetime.datetime.now()

    # 检查页面状态
    url = driver.current_url
    if check_page_status(url):
      status_code = "200"
    else:
      status_code = "404"

    # 检查页面是否正常打开
    # 追加写入刷新结果到日志文件
    with open("Err_Date.txt", "a") as f:
      f.write(f"Refresh at {refresh_time}: Status Code - {status_code}\n")

# 关闭浏览器
driver.quit()

boy666 发表于 2024-4-25 15:41

给你推荐个更省事的办法,浏览器插件:https://chromewebstore.google.com/detail/auto-refresh-plus/ffejlioijcokmblckiijnjcmfidjppdn

外酥内嫩 发表于 2024-4-25 15:46

检测网页是否正常打开啥意思,检测有没有刷新完成?那这个直接设置超时时间就可以了啊

devilpanama 发表于 2024-4-25 15:50

from datetime import datetime
from time import sleep
from selenium import webdriver

driver = webdriver.Edge() # 启动 Edge 浏览器
driver.get("http://www.baidu.com") # 打开百度网页

for i in range(10000): # 刷新次数
    driver.refresh() # 刷新网页
    sleep(30) # 30秒一次

# 检测网页是否正常打开
    if "百度一下,你就知道" not in driver.title:
      current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
      with open("Err_Date.log", "a") as f:
            f.write(f"页面未正常打开,时间:{current_time}\n")

jiujiukeji 发表于 2024-4-25 15:53

你的正常打开 是指这个网页 还是指浏览器窗口

boy666 发表于 2024-4-25 16:06

boy666 发表于 2024-4-25 16:05
通用的,baidu能换成任意页面:
from time import sleep
from selenium import ...

为了测试延迟改成3s了,可以自己修改{:301_997:}

jiujiukeji 发表于 2024-4-25 16:31

from time import sleep
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver= webdriver.Edge() # 需要 下载 对应浏览器 驱动到 python 安装目录
driver.get("http://www.baidu.com") # 刷新网址
for i in range(10000): # 刷新次数
    driver.refresh() # 刷新网页
    sleep(5) # 30秒一次
    try:
      WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "kw")))
      print("搜索输入框已加载")
    except Exception:
      current_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
      with open("Err_Date.log", 'a', encoding='utf-8') as f:
            f.write(f"页面未正常打开,时间:{current_time}\n")

你好,再见 发表于 2024-4-25 22:05

我记得chrome有个什么套件可以让程序直接操控浏览器

luoxiao.1106 发表于 2024-4-26 09:14

devilpanama 发表于 2024-4-25 15:50
from datetime import datetime
from time import sleep
from selenium import ...

哥,你写的脚本也不错。但是没办法给两个最佳采纳。有另外能给吾爱币的渠道吗?我补一点给你。
页: [1] 2
查看完整版本: 求补充网页刷新python脚本