吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

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

[复制链接]
zjg121 发表于 2024-3-26 09:37
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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, 2025-4-16 09:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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