Bootstrap

python可以下载百度文库_Python在线百度文库爬虫(免下载券)

百度文库,文字类型的资源(如txt, doc, pdf),是可以在前端源码分析获取到的,如果能按照规则合理的提取这些文字资源,就可以实现免下载券获取资源.

作者完成了百度文库的在线版爬虫,只需提供文库资源页面的url,就可以获取对应的文库资源(免下载券)

在线测试地址:

http://zhaozhaoli.vicp.io/spider/bdwk

效果展示

c8e10ec26342

初始界面.png

c8e10ec26342

摄影课感想_百度文库_and_方圆小站.png

c8e10ec26342

获取资源.png

c8e10ec26342

展示文本.png

关于ppt的爬取,作者也写出来了,但是我的个人服务器带宽太小,导致前端等待时间过长,就把它注释了...有兴趣的可以看以前写过的这篇文章百度文库下载器,文章底部提供了编译好的可执行文件(支持ppt,txt,pdf,word格式的下载),可以下载到本地玩一玩...

核心源码:

import os

import re

import json

import requests

from lxml import etree

import sys

from fangyuanxiaozhan.settings import BASE_DIR

# import tkinter

# 创建文库基类

class BaiduWK(object):

def __init__(self, url):

self.title = None

self.url = url

self.docType = None

self.headers = {

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36'}

self.get_response_content(self.url)

self.get_doc_type_and_title()

def get_response_content(self, url):

try:

response = requests.get(url, headers=self.headers)

return response.content

except Exception as e:

print(e)

pass

def get_doc_type_and_title(self):

# 获取源码

source_html = self.get_response_content(self.url)

# 解析源码

content = source_html.decode('gbk')

# 获取文档类型

self.docType = re.findall(r"docType.*?\:.*?\'(.*?)\'\,", content)[0]

# 获取文档标题

self.title = re.findall(r"title.*?\:.*?\'(.*?)\'\,", content)[0]

# 创建获取txt的类

class BDWKTXT(BaiduWK):

def __init__(self, url):

super().__init__(url)

self.docId = None

pass

def get_txt(self, url):</

;