Python应用之爬取一本pdf

Posted 奔跑吧,蜗牛!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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==&[email protected][email protected][email protected]==" % pngName
    return url
def getCurPageUrl(pngName):
    url = "https://view42.book118.com/img/?img=%s" % pngName
    return url 
 
#url = getNextPageURL("[email protected]cA4m4rqRBGs=")
url = "https://view42.book118.com/pdf/GetNextPage/?f=dXAyMjI2LTIuYm9vazExOC5jb20uODBcMzQ4NDU0MS01OTgxMGI5MDMwM2JjLnBkZg==&[email protected]WAYh&isMobile=false&isNet=True&readLimit=kVJSwRWfuu2BpuMVDJqlnw==&[email protected][email protected][email protected]=="   
for curPageIndex in range(0, 486):
    #根据当前图片名字,请求下一张图片名字
    pngName = getPNGName(url)
    #根据下一张图片名字拼凑url
    url = getCurPageUrl(pngName)
    #下载PNG,记录图片名字
    savePng(url, str(curPageIndex) + ".PNG")
    #得到下一页图片url
    url = getNextPageURL(pngName)

 

以上是关于Python应用之爬取一本pdf的主要内容,如果未能解决你的问题,请参考以下文章

python爬虫实例详细介绍之爬取大众点评的数据

python伪代码之爬取完美志愿全国历年文理分数线运行代码持续更新

Python爬虫实战一之爬取糗事百科段子

Python爬虫实战二之爬取百度贴吧帖子

芝麻HTTP:Python爬虫实战之爬取糗事百科段子

python爬虫之爬取百度图片