zjg121 发表于 2024-3-26 09:37

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

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")
driver.execute_script("arguments.scrollIntoView();", ele)
sleep(1)
ele1 = driver.find_element(By.XPATH, "//*[@id='pageImgBox" + a + "']/div")
# 调用函数,截取元素屏幕截图
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')
# 调用函数,截取元素屏幕截图
capture_element_screenshot(ele1, "2")
sleep(1)
# ele1 = driver.find_element(By.XPATH, '//*[@id="pageImgBox2"]/div')
# driver.execute_script("arguments.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()

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

所见即所得,不是看到就有:lol

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

就一个标题就有思路了
页: [1] 2 3 4
查看完整版本: 爬虫思路:看到就有。方法:网页元素分段截屏,图片拼接