python如何截长图_python如何实现对元素的长截图功能 python实现对元素的长截图功能实例...

本文介绍了使用Python结合PIL和Selenium库,实现在网页上针对特定元素进行长截图的方法。通过滚动页面并逐次截图,然后拼接成完整图片,确保无论元素多长都能截取完整。
摘要由CSDN通过智能技术生成

本篇文章小编给大家分享一下python实现对元素的长截图功能实例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

一.目标

浏览网页的时候,看见哪个元素,就能截取哪个元素当图片,不管那个元素有多长

5b8d96e4f77bae377eff5b90f4de6a50.png

二.所用工具和第三方库

python ,PIL,selenium

pycharm

三.代码部分

长截图整体思路:

1.获取元素

2.移动,截图,移动,截图,直到抵达元素的底部

3.把截图按照元素所在位置切割,在所有图片中只保留该元素

4.拼接

如果driver在环境变量中,那么不用指定路径

b=webdriver.Chrome(executable_path=r"C:\Users\Desktop\chromedriver.exe")#指定一下driver

b.get("https://www.w3school.com.cn/html/html_links.asp")

b.maximize_window()#最大化窗口

打开网站

9f62eb46ba3b3c3763b67dbc53b817dc.png

我们可以看见一个ID为maincontent的元素,宽度为850PX,长度为3828PX,这个长度必须使用才能长截图才能完整截下来

el=b.find_element_by_id("maincontent")#找到元素

我们还需要一个重要的参数,就是你电脑一次能截取多高的像素

先用下图代码获取一个图片

#fp为存放图片的地址

b.get_screenshot_as_file(fp)

af55fc01d8caeeca5a80155da6ee4342.png

也就是说用我电脑上截图的默认高度为614像素

所以我设置一个变量:

sc_hight=614

然后设置一下其他变量

count = int(el.size["height"] / sc_hight) # 元素的高度除以你每次截多少就是次数

start_higth = el.location["y"] # 元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值