python selenium 爬取某网站的pdf预览文件,下载图片转换pdf

import requests
from selenium import webdriver
import time

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'}

url = 'https://xxxxxxxxx.com/xxxx/xxx/01126.shtm'
driver = webdriver.Chrome()
driver.get(url)
time.sleep(4)
driver.maximize_window()
path = r"E:\honyuping\c"
list1=[]
for i in range(100):  # 预览下滑,这里网速比较慢,所以要提前下滑加载,而且这里只要加载完全部图片链接都会出来,不会隐藏掉,这里没有做停止判断处理
    try:
        for d in range(15):
            print(d)
            driver.execute_script("window.scrollBy(0,1000)")
            time.sleep(10)
        pictureurl = driver.find_elements_by_css_selector("[class='webpreview-item']")
        for p in pictureurl:
            urlp = p.find_element_by_tag_name("img").get_attribute('src')
            print(urlp)
            if urlp not in list1:
                list1.append(urlp)
    except:
        pass
print(len(list1))
print(list1)
for s in list1:
    r = requests.get(s, headers=headers, timeout=5)
    # 以时间轴的形式给图片命名
    f = open(f'{path}/{int(time.time() * 1000)}.png', 'wb')
    # 写入文件夹
    f.write(r.content)
    time.sleep(1)
    f.close()

 

图片转pdf

import glob
import fitz
import os

def c_pdf():
    doc = fitz.open()
    for img in sorted(glob.glob("E:/honyuping/c/*")):  # 按文件名排序读取图片
        print(img)
        imgdoc = fitz.open(img)            
        pdfbytes = imgdoc.convertToPDF()        # 使用图片创建单页的 PDF
        imgpdf = fitz.open("pdf", pdfbytes)
        doc.insertPDF(imgpdf)                   
    if os.path.exists("c.pdf"):
        os.remove("c.pdf")
    doc.save("c.pdf")
    doc.close()

if __name__ == '__main__':
    c_pdf()

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值