zoukankan      html  css  js  c++  java
  • Python应用之爬取一本pdf

    爬取https://max.book118.com网站的某一本书,其实也算不上爬取,只是下载。我这个只是抛砖引玉,大神们可以写个网站整个文档的爬虫。

    以这本书为列 https://max.book118.com/html/2017/0802/125615287.shtm,再加上批量img2pdf的方法,就可以下载一本书了。具体的分析过程不在此赘述,直接上代码(代码只是用于本人学习,写的有些low)

    import requests
    import os
    import json
    def savePng(url, fileName):
        root = "//home//Desktop//"
        path = root + "//" +  fileName
        if not os.path.exists(root):
            os.mkdir(root)
        if not os.path.exists(path):
            r = requests.get(url)
            r.raise_for_status()
        with open(path, "wb+") as f:
            f.write(r.content)  
    def getPNGName(url):
        req = requests.get(url)
        json_req = req.content.decode()
        json_dict= json.loads(json_req)
        print(json_dict)
        return json_dict["NextPage"] 
    def getNextPageURL(pngName):
        url = "https://view42.book118.com/pdf/GetNextPage/?f=dXAyMjI2LTIuYm9vazExOC5jb20uODBcMzQ4NDU0MS01OTgxMGI5MDMwM2JjLnBkZg==&img=%s&isMobile=false&isNet=True&readLimit=kVJSwRWfuu2BpuMVDJqlnw==&furl=o4j9ZG7fK94kkYRv4gktA2rYw4NlKHsQghNfCDpGDtCDuhClp@zqsXbBvWkfutt7oIxYGVjQwpqa2_7Y@T__cVzRwC_U6kA_a5K64MvXGRoemz@A5sruig==" % pngName
        return url
    def getCurPageUrl(pngName):
        url = "https://view42.book118.com/img/?img=%s" % pngName
        return url 
     
    #url = getNextPageURL("7o@o7xcocmmKnrqreQGENvFMksKYwld1WTnrOUUaeADxViDtQ3Pv9cm31oOktykHcA4m4rqRBGs=")
    url = "https://view42.book118.com/pdf/GetNextPage/?f=dXAyMjI2LTIuYm9vazExOC5jb20uODBcMzQ4NDU0MS01OTgxMGI5MDMwM2JjLnBkZg==&img=7o@o7xcocmmKnrqreQGENvFMksKYwld1WTnrOUUaeADxViDtQ3Pv9R7mPNB3WAYh&isMobile=false&isNet=True&readLimit=kVJSwRWfuu2BpuMVDJqlnw==&furl=o4j9ZG7fK94kkYRv4gktA2rYw4NlKHsQghNfCDpGDtCDuhClp@zqsXbBvWkfutt7oIxYGVjQwpqa2_7Y@T__cVzRwC_U6kA_a5K64MvXGRoemz@A5sruig=="   
    for curPageIndex in range(0, 486):
        #根据当前图片名字,请求下一张图片名字
        pngName = getPNGName(url)
        #根据下一张图片名字拼凑url
        url = getCurPageUrl(pngName)
        #下载PNG,记录图片名字
        savePng(url, str(curPageIndex) + ".PNG")
        #得到下一页图片url
        url = getNextPageURL(pngName)
  • 相关阅读:
    Apache Pig使用MongoLoader产生大量空文件问题
    执行sparksql出现OOM问题
    [TD笔记]Teradata XML
    Redhat上离线/非root安装python库
    Java 多线程同步关键字synchronized各种用法/特性 总结
    CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析
    Spring Security 实战(使用Spring Boot项目演示)
    一些渗透中,或者扫描的nmap nse脚本推荐
    kali学习笔记(一):虚拟机安装好kali后应进行的配置
    Spring boot相关问题
  • 原文地址:https://www.cnblogs.com/xzlq/p/9957233.html
Copyright © 2011-2022 走看看