本来扒的网站今天发现是空白的,再去看这个网站更新了,怎么能查看到他的更新前的网站样子并且扒下来呢?
2条回答 默认 最新
关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
问题分析:我们需要找到一种方法来查看网站更新前的页面,并将其扒下来。通常情况下,网站的更新都是通过更改网页代码、添加、删除或修改元素的方式进行的。因此,我们可以通过比较更新后网页代码与更新前网页代码的差异,找到更新之前的网页。 解决方案: 1.使用网页快照工具:这种方法可以查看网站更新前的页面快照并将其保存。例如,可以使用Wayback Machine这样的网页快照工具,它可以提供历史页面快照,用户可以选择查看历史快照并将页面保存为HTML文件。步骤如下: (1)打开Wayback Machine网站(https://archive.org/web/); (2)在搜索框中输入要查询的网站URL,然后点击"go"按钮; (3)选择日期,查看以前的网页快照; (4)保存页面快照为HTML文件。 2.使用比较工具:这种方法可以比较更新前后的网页代码,找到差异并将更新之前的网页扒下来,实现该方法需要掌握一些基本的编程技巧、比较工具等(如difflib、WinMerge等)。具体步骤如下: (1)抓取更新后页面的HTML代码并保存为文件; (2)使用抓取更新前页面的HTML代码并保存为文件; (3)使用比较工具(如difflib、WinMerge等),比较两份代码的差异; (4)找到更新前页面的代码,将其保存至本地。 案例代码示例: import requests import difflib url = "需要查询的网站URL" response_new = requests.get(url) # 抓取更新后的页面HTML代码 with open("new.html", "w", encoding='utf-8') as file: # 保存HTML代码至文件file.write(response_new.text)snapshot_url = "https://web.archive.org/save/"+ url # 生成页面历史快照 requests.get(snapshot_url) response_old = requests.get(snapshot_url + "?_timestamp=20220101000000") # 获取历史快照 with open("old.html", "w", encoding='utf-8') as file: # 保存页面历史快照HTML代码至文件 file.write(response_old.text)
使用difflib进行比较,找出更新前的HTML代码
old_html_list = response_old.text.splitlines() new_html_list = response_new.text.splitlines() result = list(difflib.unified_diff(old_html_list, new_html_list)) for line in result: if line.startswith('-'): print(line[1:].strip()) #打印更新前HTML代码 with open("old.html", "w", encoding='utf-8') as file: # 将HTML代码保存至文件 file.write(line[1:].strip()) break
解决 无用评论 打赏 举报