一个基于Python的百度文库爬虫,
主要实现文库pdf文件的下载。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 398 2018-05-30 09:36 文库爬虫.ideaFreeForWenku-master.iml
文件 212 2018-05-30 09:35 文库爬虫.ideamisc.xml
文件 290 2018-05-30 09:35 文库爬虫.ideamodules.xml
文件 14917 2018-05-30 10:03 文库爬虫.ideaworkspace.xml
文件 141668 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img0.jpg
文件 177485 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img1.jpg
文件 211042 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img10.jpg
文件 201024 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img11.jpg
文件 257453 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img12.jpg
文件 213538 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img13.jpg
文件 228293 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img14.jpg
文件 236833 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img15.jpg
文件 213298 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img16.jpg
文件 269043 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img17.jpg
文件 231817 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img18.jpg
文件 268082 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img19.jpg
文件 206299 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img2.jpg
文件 248085 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img3.jpg
文件 246805 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img4.jpg
文件 226442 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img5.jpg
文件 257286 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img6.jpg
文件 197320 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img7.jpg
文件 226475 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img8.jpg
文件 267267 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img9.jpg
文件 44871 2018-05-30 09:55 文库爬虫695832bbd5d8d15abe23482fb4daa58da0111cc7.txt
文件 7826677 2018-04-09 12:14 文库爬虫FreeForWenku.exe
文件 3752 2018-05-30 09:59 文库爬虫FreeForWenku.py
文件 575 2018-05-30 09:59 文库爬虫README.md
目录 0 2018-05-30 09:36 文库爬虫.ideainspectionProfiles
目录 0 2018-05-30 10:03 文库爬虫.idea
............此处省略5个文件信息
import requests
import re
import argparse
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 = ‘
‘
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‘ ‘
‘)
texts[i] = texts[i].replace(‘\n‘ ‘
‘)
f.write(texts[i])
print(“文档保存在“ + filename)
def FPD(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“:“(.*?)“
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 398 2018-05-30 09:36 文库爬虫.ideaFreeForWenku-master.iml
文件 212 2018-05-30 09:35 文库爬虫.ideamisc.xm
文件 290 2018-05-30 09:35 文库爬虫.ideamodules.xm
文件 14917 2018-05-30 10:03 文库爬虫.ideaworkspace.xm
文件 141668 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img0.jpg
文件 177485 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img1.jpg
文件 211042 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img10.jpg
文件 201024 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img11.jpg
文件 257453 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img12.jpg
文件 213538 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img13.jpg
文件 228293 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img14.jpg
文件 236833 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img15.jpg
文件 213298 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img16.jpg
文件 269043 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img17.jpg
文件 231817 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img18.jpg
文件 268082 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img19.jpg
文件 206299 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img2.jpg
文件 248085 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img3.jpg
文件 246805 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img4.jpg
文件 226442 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img5.jpg
文件 257286 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img6.jpg
文件 197320 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img7.jpg
文件 226475 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img8.jpg
文件 267267 2018-05-30 09:50 文库爬虫 9f3e7c9a1c7aa00b52acb96img9.jpg
文件 44871 2018-05-30 09:55 文库爬虫695832bbd5d8d15abe23482fb4daa58da0111cc7.txt
文件 7826677 2018-04-09 12:14 文库爬虫FreeForWenku.exe
文件 3752 2018-05-30 09:59 文库爬虫FreeForWenku.py
文件 575 2018-05-30 09:59 文库爬虫README.md
目录 0 2018-05-30 09:36 文库爬虫.ideainspectionProfiles
目录 0 2018-05-30 10:03 文库爬虫.idea
............此处省略5个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)