吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2194|回复: 31
收起左侧

[Python 原创] 爬虫思路:看到就有。方法:网页元素分段截屏,图片拼接

[复制链接]
zjg121 发表于 2024-3-26 09:37
[Python] 纯文本查看 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
import pyautogui
from PIL import Image


def capture_element_screenshot(element1, mc):
    # 获取元素的位置和大小
    location = element1.location
    size = element1.size

    # 截取整个页面的屏幕截图
    driver.save_screenshot("screenshot.png")

    # 打开截图并裁剪出元素区域
    x = location['x']
    y = location['y']
    width = size['width']
    height = size['height']
    im = Image.open('screenshot.png')
    im = im.crop((int(x), int(y), int(x + width), int(y + height)))
    im.save(f'D:/element_screenshot{a}_{mc}.png')


a = input("请输入要截取的页码:")
driver = webdriver.Edge()
driver.maximize_window()
driver.get("https://wqbook.wqxuetang.com/deep/read/pdf?bid=3225892")
sleep(10)
ele = driver.find_element(By.XPATH, "//*[@id='pageImgBox" + a + "']/div[3]")
driver.execute_script("arguments[0].scrollIntoView();", ele)
sleep(1)
ele1 = driver.find_element(By.XPATH, "//*[@id='pageImgBox" + a + "']/div[1]")
# 调用函数,截取元素屏幕截图
capture_element_screenshot(ele1, "1")
# 移动鼠标到指定位置
pyautogui.moveTo(500, 500, duration=1)
# 模拟鼠标点击
pyautogui.click()
sleep(1)
for i in range(8):
    # 模拟按下pagedown键
    pyautogui.press('down')
    sleep(0.2)
ele1 = driver.find_element(By.XPATH, f'//*[@id="pageImgBox{a}"]/div[1]')
# 调用函数,截取元素屏幕截图
capture_element_screenshot(ele1, "2")
sleep(1)
# ele1 = driver.find_element(By.XPATH, '//*[@id="pageImgBox2"]/div[3]')
# driver.execute_script("arguments[0].scrollIntoView();", ele1)
sleep(1)
# 打开图片
img1 = Image.open('D:/element_screenshot' + a + '_1.png')
img2 = Image.open('D:/element_screenshot' + a + '_2.png')

# 截取图片1的前755像素的内容
area = (0, 0, img1.width, 755)
cropped_img1 = img1.crop(area)

# 将截取的部分替换到图片2的相应位置
img2.paste(cropped_img1, (0, 0))

# 保存结果
img2.save('D:/result' + a + '.png')
driver.quit()

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
hongwei1112 + 1 + 1 谢谢@Thanks!
tangzhiman + 1 + 1 用心讨论,共获提升!
移情√似水 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fire9 发表于 2024-3-26 11:12
这思路可以。但是用协议快一点
serpentking 发表于 2024-4-6 02:27
请教个问题,网页有防爬手段,我也不是每个页面都需要,只是在浏览页面的时候觉得需要就要保存,现在我使用拷贝全部文字方式,然后粘贴到EXCEL中,使用VBA把粘贴的数据提取到其他表格中保存。想请教有没有一个什么办法可以单独保存我需要的这个页面数据,页面格式都是一样的。
移情√似水 发表于 2024-3-26 09:41
xinxiu 发表于 2024-3-26 09:43
所见即所得,不是看到就有
livy522 发表于 2024-3-26 10:02
不错的文章,学习了,楼主的分享。
tujinfeng 发表于 2024-3-26 10:14
感谢楼主分享
几度夕阳红 发表于 2024-3-26 10:18
不错,学习了,感谢楼主分析
tangzhiman 发表于 2024-3-26 10:19
这个有限制,只能读取前30页,不知有没大神可以补充一下,破解后30页的内容呢,哈哈
sai609 发表于 2024-3-26 10:57
爬虫出来的效果图在哪
jingjing11 发表于 2024-3-26 11:02
小白表示看不懂
wjx1201 发表于 2024-3-26 11:04
就一个标题就有思路了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 09:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表