Skip to main content
 首页 » 编程设计

Python 3,urllib ...重置连接可能吗

2025年05月04日6rubylouvre

在我的程序中,以下代码的目标是过滤掉网页源代码中的所有动态 html

代码片段:

try: 
    deepreq3 = urllib.request.Request(deepurl3) 
    deepreq3.add_header("User-Agent","etc......") 
    deepdata3 = urllib.request.urlopen(deepurl3).read().decode("utf8", 'ignore') 

以下代码循环3次,以判断目标网页是否为Dynamic(源代码每隔一段时间更改一次)

如果页面是动态的,上面的代码再循环 15 次并尝试过滤掉动态内容。

问题:

虽然这种过滤方法在 80% 的情况下都有效,但有些页面会重新加载 15 次并且仍然包含动态代码。然而。如果我手动关闭 Python Shell 并重新执行我的程序,我的“刷新页面方法”无法摆脱的动态 html 将不再存在......它已被我的“刷新页面”的新动态 html 取代方法'无法摆脱。所以我需要知道,这是怎么回事?重新运行我的程序如何导致页面的动态内容发生变化。并且,有什么方法可以让我使用任何“重置连接”命令来重新创建此...而无需手动重新启动我的应用程序。

感谢您的回复。

更新:

我制作了一个 minu 可执行 html 抓取器,我从主脚本循环运行它。它解决了这个问题,但我仍然很好奇为什么我需要这样做。

请您参考如下方法:

读取数据后尝试关闭连接:

try: 
    deepreq3 = urllib.request.Request(deepurl3) 
    deepreq3.add_header("User-Agent","etc......") 
    connection = urllib.request.urlopen(deepurl3) 
    deepdata3 = connection.read().decode("utf8", "ignore") 
    connection.close()