吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 22150|回复: 88
收起左侧

[Python 转载] 百度文库API免费下载百度文库收费资料(DOC|PPT|TXT|PDF)

  [复制链接]
ccbynow 发表于 2018-7-17 15:09
本帖最后由 ccbynow 于 2018-7-17 15:38 编辑

这里还有更多接口,请移步https://github.com/Jack-Cherish/python-spider
[Python] 纯文本查看 复制代码
import requests
import re
import argparse
import sys
import json
import os


parser = argparse.ArgumentParser()
parser.add_argument("url", help="Target Url,你所需要文档的URL",type=str)
parser.add_argument('type', help="Target Type,你所需要文档的的类型(DOC|PPT|TXT|PDF)",type=str)
args = parser.parse_args()

url = args.url
type = args.type

#根据文件决定函数
y = 0
def DOC(url):
    doc_id = re.findall('view/(.*).html', url)[0]
    html = requests.get(url).text
    lists=re.findall('(https.*?0.json.*?)\\\\x22}',html)
    lenth = (len(lists)//2)
    NewLists = lists[:lenth]
    for i in range(len(NewLists)) :
        NewLists[i] = NewLists[i].replace('\\','')
        txts=requests.get(NewLists[i]).text
        txtlists = re.findall('"c":"(.*?)".*?"y":(.*?),',txts)
        for i in range(0,len(txtlists)):
            global y
            print(txtlists[i][0].encode('utf-8').decode('unicode_escape','ignore'))
            if y != txtlists[i][1]:
                y = txtlists[i][1]
                n = '\n'
            else:
                n = ''
            filename = doc_id + '.txt'
            with open(filename,'a',encoding='utf-8') as f:
                f.write(n+txtlists[i][0].encode('utf-8').decode('unicode_escape','ignore').replace('\\',''))
        print("文档保存在"+filename)




def PPT(url):
    doc_id = re.findall('view/(.*).html',url)[0]
    url = "https://wenku.baidu.com/browse/getbcsurl?doc_id="+doc_id+"&pn=1&rn=99999&type=ppt"
    html = requests.get(url).text
    lists=re.findall('{"zoom":"(.*?)","page"',html)
    for i in range(0,len(lists)):
        lists[i] = lists[i].replace("\\",'')
    try:
        os.mkdir(doc_id)
    except:
        pass
    for i in range(0,len(lists)):
        img=requests.get(lists[i]).content
        with open(doc_id+'\img'+str(i)+'.jpg','wb') as m:
            m.write(img)
    print("PPT图片保存在" + doc_id +"文件夹")

def TXT(url):
    doc_id = re.findall('view/(.*).html', url)[0]
    url = "https://wenku.baidu.com/api/doc/getdocinfo?callback=cb&doc_id="+doc_id
    html = requests.get(url).text
    md5 = re.findall('"md5sum":"(.*?)"',html)[0]
    pn = re.findall('"totalPageNum":"(.*?)"',html)[0]
    rsign = re.findall('"rsign":"(.*?)"',html)[0]
    NewUrl = 'https://wkretype.bdimg.com/retype/text/'+doc_id+'?rn='+pn+'&type=txt'+md5+'&rsign='+rsign
    txt = requests.get(NewUrl).text
    jsons = json.loads(txt)
    texts=re.findall("'c': '(.*?)',",str(jsons))
    print(texts)
    filename=doc_id+'.txt'
    with open(filename,'a',encoding='utf-8') as f:
        for i in range(0,len(texts)):
            texts[i] = texts[i].replace('\\r','\r')
            texts[i] = texts[i].replace('\\n','\n')

            f.write(texts[i])
    print("文档保存在" + filename)

def PDF(url):
    doc_id = re.findall('view/(.*).html',url)[0]
    url = "https://wenku.baidu.com/browse/getbcsurl?doc_id="+doc_id+"&pn=1&rn=99999&type=ppt"
    html = requests.get(url).text
    lists=re.findall('{"zoom":"(.*?)","page"',html)
    for i in range(0,len(lists)):
        lists[i] = lists[i].replace("\\",'')
    try:
        os.mkdir(doc_id)
    except:
        pass
    for i in range(0,len(lists)):
        img=requests.get(lists[i]).content
        with open(doc_id+'\img'+str(i)+'.jpg','wb') as m:
            m.write(img)
    print("FPD图片保存在" + doc_id + "文件夹")


if __name__ == "__main__":
    try:
        print("""
###Athor:52pojie
###TIPS:PDF|PPT只能下载图片
        """)
        eval(type.upper())(url)
    except:
        print("获取出错,可能URL错误\n使用格式name.exe url type\n请使用--help查看帮助")

免费评分

参与人数 9吾爱币 +6 热心值 +7 收起 理由
千百度° + 1 + 1 谢谢@Thanks!
胖哥 + 1 大赞!
jxls086503 + 1 + 1 谢谢@Thanks!
zhanglei1371 + 1 谢谢@Thanks!
jnu + 1 热心回复!
wind1542 + 1 的确是看着很厉害,可惜看不懂
冬听雪落 + 1 看着很溜,就是看不懂
qqhsx + 1 + 1 我很赞同!
微若清风 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

iptver 发表于 2018-11-26 08:48
zlab 发表于 2018-11-14 18:29
应该是把百度文库显示的内容下载后再加工的思路,无法搞到原始文件,不过也比自己手工保存图片什么的方便多 ...

感谢提醒, 看了代码应该是这样, 如果这样的话意义就不大了,刚开始还以为能获取原始文档呢
obeina 发表于 2018-7-17 15:37
夏无道 发表于 2018-7-17 15:39
秋枫华年 发表于 2018-7-17 15:42
看不懂源码的菜鸡只好膜拜大佬
Cmilyci 发表于 2018-7-17 15:44
+1+1
不会编程,有源码也没啥用
zhangzhimingde 发表于 2018-7-17 16:05
厉害了,收藏下。
凉99 发表于 2018-7-17 16:15
支持一下
eing888 发表于 2018-7-17 16:17

+1+1
不会编程,有源码也没啥用
jim19 发表于 2018-7-17 16:20
不会编程,有源码也没啥用
laoda1228 发表于 2018-7-17 16:24
知道这个东西以后怎么用呢?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 05:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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