Py3 下载book118预览图片并合并成docx文件
根据原创力文档的真实预览地址获取每个预览图片的地址,下载到本地,并合并成docx文件
拿网友的代码稍微改了下,https://www.jianshu.com/p/8012edb46153,增加了合并docx文件功能
仍未解决的问题:
- while循环部分容易出错,导致url_dict中的预览图片地址不完全,最终得到的docx文件缺失相应页面
- book118设置了预览频次上限,超限需要输入验证码进行验证才能继续预览。好像是第二天解除验证模式,这也不算个问题,反正也不需要下载很多文件。book118验证码地址:https://max.book118.com/index.php?m=Public&a=verify,有兴趣的可以尝试下识别验证码
- 运行中途出错基本就要重新开始,实在需要下载文件的话,多尝试几遍。或者在52pojie找下下载工具。
import requests
import json
import re
import time
import os
import sys
from bs4 import BeautifulSoup
from docx import Document
from docx.shared import Cm
#获取真实预览地址turl
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'}
url = input('please input url:')
if len(url)<10:
url = 'https://max.book118.com/html/2019/1028/8143004105002060.shtm'
aid = re.search('\d{1,100}\.s',url).group()[:-2]
rep = requests.get(url, headers=headers)
soup = BeautifulSoup(rep.text, 'lxml')
title = soup.title.contents[0]
title = title[:title.find('.')]
turl = 'https://max.book118.com/index.php?g=Home&m=NewView&a=index&aid={}'.format(aid)
print('turl:',turl)
#获取预览信息,放在book中
rep = requests.get(