Centos7上Python克隆与对网页完整截图

有用的话谢谢点赞~

安装Python3.11

cd /root
wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
tar -xzf Python-3.11.0.tgz
yum -y install gcc zlib zlib-devel libffi libffi-devel
yum install readline-devel
yum install openssl-devel openssl11 openssl11-devel
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
cd /root/Python-3.11.0
./configure --prefix=/usr/python --with-ssl
make
make install
ln -s /usr/python/bin/python3 /usr/bin/python3
ln -s /usr/python/bin/pip3 /usr/bin/pip3

克隆网页

安装httrack

优点:方便

 缺点,很慢克隆一个网页需要3分钟左右,而且他会把html放在没有规则很深的目录下。

sudo yum install epel-release
sudo yum install httrack
import subprocess
import os
import datetimedef clone_website(url):# 获取当前时间戳的后五位timestamp_suffix = str(int(datetime.datetime.now().timestamp()))[-5:]# 在当前脚本的目录中创建一个新的目录(如果它不存在)current_dir = os.path.dirname(os.path.realpath(__file__))output_dir = os.path.join(current_dir, timestamp_suffix)os.makedirs(output_dir, exist_ok=True)# 构建 HTTrack 命令,使用10个并发连接command = ['httrack',url,'-O', output_dir,'+*.css', '+*.js', '+*.png', '+*.jpg', '+*.jpeg', '+*.gif', '+*.bmp', '+*.tif', '+*.ico', '+*.svg', '+*.woff', '+*.woff2', '+*.ttf', '+*.eot','+*.doc', '+*.docx', '+*.xls', '+*.xlsx', '+*.ppt', '+*.pptx', '+*.pdf','-v',  # 显示详细的输出'-c20'  # 设置并发连接数为10]# 调用 HTTrackresult = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)# 检查结果if result.returncode == 0:print(f'Website cloned successfully to {output_dir}.')else:print(f'Error: {result.stderr}')# 使用函数,替换下面的URL为你要克隆的网站的URL
clone_website('https://jw.cq.gov.cn/zwxx_209/gggs/202304/t20230407_11857087.html')

克隆的效果,复制到windows后查看: 

对网页长截图

Centos7自带了火狐浏览器,先给卸载,然后安装新的:
 

sudo yum install firefox

然后去:火狐浏览器下载链接,选择geckodriver-v0.33.0-linux64.tar.gz的

tar -zxvf geckodriver-v0.23.0-linux64.tar.gz
mv geckodriver /usr/bin
pip3 install selenium
pip3 install pillow
from selenium import webdriver
from PIL import Image
import io
import time# 初始化浏览器选项
options = webdriver.FirefoxOptions()
options.add_argument('--headless')# 启动Firefox浏览器
driver = webdriver.Firefox(options=options)# 设置浏览器窗口大小
driver.set_window_size(1920, 1080)  # 设置足够宽的窗口以避免水平滚动条# 访问网页
driver.get('https://mp.weixin.qq.com/s?__biz=MzA4NzA4OTcxOA==&mid=2652043883&idx=1&sn=b92866b4ca48eb9347c86975ef0d7d63&chksm=8bd8ed32bcaf6424cd29c8f570e4017a891845d4eaa0f84200a296c2559fce58f7812444616d&mpshare=1&scene=23&srcid=0317rO8OszUoDa3ONY9rPLV2&sharer_sharetime=1679227735767&sharer_shareid=81423ad49b97041adbcf45fdceef7dc6#rd')
time.sleep(5)  # 给页面时间加载内容# 获取页面总高度
total_height = driver.execute_script("return document.body.parentNode.scrollHeight")# 开始截图
slices = []
offset = 0
while offset < total_height:# 滚动到新的截图位置driver.execute_script(f"window.scrollTo(0, {offset});")time.sleep(2)  # 等待滚动动画完成和内容加载img = Image.open(io.BytesIO(driver.get_screenshot_as_png()))slices.append(img)offset += img.size[1]# 将截图拼接为一张完整的图片
screenshot = Image.new('RGB', (slices[0].size[0], total_height))
offset = 0
for img in slices:screenshot.paste(img, (0, offset))offset += img.size[1]# 保存截图
screenshot.save('entire_page_screenshot.png')# 关闭浏览器
driver.quit()

效果如图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【qemu逃逸】GACTF2020-babyqemu

前言 虚拟机用户名&#xff1a;root 无密码 设备逆向 题目去掉的符号&#xff0c;经过逆向分析&#xff0c;实例结构体如下&#xff1a; 可以看到 arr_int_8 数组后面存在一个函数指针&#xff0c;不用想基本上就是劫持该函数指针了。 denc_mmio_read 函数 这里存在越界读…

[100天算法】-x 的平方根(day 61)

题目描述 实现 int sqrt(int x) 函数。计算并返回 x 的平方根&#xff0c;其中 x 是非负整数。由于返回类型是整数&#xff0c;结果只保留整数的部分&#xff0c;小数部分将被舍去。示例 1:输入: 4 输出: 2 示例 2:输入: 8 输出: 2 说明: 8 的平方根是 2.82842...,由于返回类型…

盘点苹果手机导出照片到电脑的3个方法!

大家都知道&#xff0c;手机中的照片是非常占用空间的。特别是对喜欢拍照的女生来说&#xff0c;每一张照片都很珍贵&#xff0c;并且也不舍得删除&#xff0c;所以想要将照片导出到电脑上进行保存。这样&#xff0c;也方便以后进行恢复与查看。 对于想要将苹果手机上的照片导…

英飞凌TLF35584规格书中文

官网&#xff1a; 英飞凌TLF35584QVVS2 TLF35584_SPI&#xff1a; 1 Overview2 Block Diagram3 Pin Configuration3.1 Pin Assignment - PG-VQFN-48 4 General Product Characteristics4.1 Absolute Maximum Ratings 绝对最大额定值4.2 Functional Range4.3 Thermal Resistance…

2.9 CSS 响应式布局

1.媒体&#xff1a;media 媒体类型&#xff1a; all&#xff1a;检测所有设备。screen&#xff1a;检测电子屏幕&#xff0c;包括:电脑屏幕、平板屏幕、手机屏幕等。print&#xff1a;检测打印机 媒体特性&#xff1a; width&#xff1a;检测视口宽度。max-width&#xff1a;…

【Spring】bean的配置

文章目录 1. 前言2. name3. lazy-init4. init-method5. destroy-method6. factory-method和factory-bean 1. 前言 在之前的文章中.写到过bean的常用配置,当时只是介绍了bean标签中的常用属性配置:class,id和scope这三个属性. 不熟的小伙伴可以看一下这篇文章:【Spring】IOC容器…

利用mybatis-plus的分页插件在xml文件中联表查询实现分页(MySQL数据库)

文章目录 准备工作Mybatis-Plus分页插件配置进行分页测试domain层Controller层Service层ServiceImplMapper层分页接口测试带其他条件的分页查询 自定义的 mapper#method&#xff08;xml文件中&#xff09; 使用分页domain层Controller层Service层ServiceImplMapper层UserMapper…

在搜索引擎中屏蔽csdn

csdn是一个很好的技术博客&#xff0c;里面信息很丰富&#xff0c;我也喜欢在csdn上做技术笔记。 但是CSDN体量太大&#xff0c;文章质量良莠不齐。当在搜索引擎搜索技术问题时&#xff0c;搜索结果中CSDN的内容占比太多&#xff0c;导致难以从其他优秀的博客平台中获取信息。因…

LLM时代中的分布式AI

深度学习相较传统机器学习模型&#xff0c;对算力有更高的要求。尤其是随着深度学习的飞速发展&#xff0c;模型体量也不断增长。于是&#xff0c;前几年&#xff0c;我们看到了芯片行业的百家争鸣和性能指标的快速提升。正当大家觉得算力问题已经得到较大程度的缓解时&#xf…

Python机器学习算法入门教程(第三部分)

接着Python机器学习算法入门教程&#xff08;第二部分&#xff09;&#xff0c;继续展开描述。 十三、sklearn实现KNN分类算法 Pyhthon Sklearn 机器学习库提供了 neighbors 模块&#xff0c;该模块下提供了 KNN 算法的常用方法&#xff0c;如下所示&#xff1a; 类方法说明…

OriginOS 4里的大模型,藏着智能终端厂商们的大金矿

监制 | 何玺 排版 | 叶媛 未来智能终端是什么模样&#xff0c;又将如何发展&#xff1f; 刚刚结束的vivo 2023开发者大会&#xff0c;vivo带来了自研蓝心大模型、OriginOS 4、自研蓝河操作系统BlueOS等最新成果。 蓝心大模型加持下的OriginOS 4&#xff0c;带来了太多的惊喜…

《国产服务器操作系统发展报告(2023)》重磅发布

11月1日&#xff0c;《国产服务器操作系统发展报告&#xff08;2023&#xff09;》&#xff08;以下简称“报告”&#xff09;在 2023 云栖大会上正式发布&#xff0c;开放原子开源基金会理事长孙文龙、中国信息通信研究院副总工程师石友康、阿里云基础软件部副总裁马涛、浪潮信…

呆头鹅-全自动视频混剪,批量剪辑批量剪视频,探店带货系统,精细化顺序混剪,故事影视解说,视频处理大全,精细化顺序混剪,多场景裂变,多视频混剪

视频闪闪-全自动视频混剪&#xff0c;探店带货系统&#xff0c;多视频混剪&#xff0c;让你成为视频处理大师&#xff01; 一、全自动视频混剪 www.shipinshanshan.com 你是否曾经厌烦于冗长的视频剪辑过程&#xff1f;是否曾经为了一个短短的混剪视频而熬夜加班&#xff1f;现…

Qt对Opengl的支持情况

Qt提供了对OpenGL的广泛支持&#xff0c;这对于开发需要复杂图形处理的机器视觉软件尤为重要。以下是Qt对OpenGL支持的一些关键方面&#xff1a; 1. 用户界面开发方法: Qt有两种主要的用户界面开发方式&#xff1a;Qt Quick和Qt Widgets。这两种方式都支持与OpenGL图形API的代…

最新版Office2024安装教程

一. 介绍&#xff1a;Office版本都是每三年发布一个版本&#xff0c;从Office 2007、2010、2013、2016、2019&#xff0c;2021到现在的2024。 二. 下载&#xff1a; http://dt1.8tupian.net/2/29913a54b1000.pg3三. 安装教程&#xff1a; 1.用到的软件是开源的脚本&#xff0c…

Docker与微服务实战——基础篇

Docker与微服务实战——基础篇 第一章 Docker 简介1.1 docker 理念1.2 容器与虚拟机比较 第二章 Docker 安装2.1 前提说明2.2 Docker的基本组成2.2.1 镜像&#xff08;image&#xff09;2.2.2 容器&#xff08;container&#xff09;2.2.3 仓库&#xff08;repository&#xff…

python机器学习——决策树

决策树 # 模块导入 from sklearn.tree import ExtraTreeRegressor as ETR, DecisionTreeRegressor as DTRExtraTreeRegressor和DecisionTreeRegressor是scikit-learn库中的两种回归模型&#xff0c;用于拟合和预测连续型目标变量。 决策树是一种基于树结构的机器学习算法&…

VLAN与配置

VLAN与配置 什么是VLAN 以最简单的形式为例。如下图&#xff0c;此时有4台主机处于同一局域网中&#xff0c;很明显这4台主机是能够直接通讯。但此时我需要让处于同一局域网中的PC3和PC4能通讯&#xff0c;PC5和PC6能通讯&#xff0c;并且PC3和PC4不能与PC5和PC6通讯。 为了实…

笔记本电脑 禁用/启用 自带键盘

现在无论办公还是生活 很多人都会选择笔记本电脑 但很多人喜欢机械键盘 或者 用一些外接键盘 但是很多时候我们想操作 会碰到笔记本原来的键盘导致错误操作 那么 我们就需要将笔记本原来的键盘禁用掉 我们先以管理员身份运行命令窗口 然后 有两个命令 禁用默认键盘 sc conf…

你犯过程序员容易犯的这些错误吗?快来看看!

一、前言 写了20多年代码&#xff0c;我见过不下于4位数的程序员&#xff0c;我觉得程序员的能力水平可以分为4个阶段&#xff1a;线性级、逻辑级、架构级和工程级。 同样的在这些人当中&#xff0c;我也发现了8个程序员最常见的陋习&#xff0c;基本上可以覆盖90%的人&#…