最近在看云发现了几篇好文章,想打印出来,奈何文章太散,只能想办法爬下来
先来看看这篇文章的请求前端性能优化与实践

image
第一个请求是个大网页,糟糕了,难道得整正则?
不 还好 其实是一个异步刷新的,点击另一个章节返回的是个json

第二次请求
这么来就很舒服了,不过刚刚两个请求是请求的同一个网址,对比一下请求头,发现accept是不一样的,那么可以直接更改请求头拉取这个json

果断掏出我的小飞人postman请求一下

postman请求
完美,成功请求到json数据,直接爬就完事了
不过爬之前要知道你要爬谁
不过第一个页面已经帮我列出来了

复制上面的片段在编辑器鼠标中键就可以快乐了
import urllib.request
import urllib.parse
import json
f=open('content.txt',mode='a',encoding='utf-8')
arr = [541670,541671,541672,541673,541674,541675,541676,541677,541678,541679,541680,541681,]
for i in arr:
req = urllib.request.Request('https://www.kancloud.cn/x751685875/x751685875/'+str(i))
#通过返回的请求对象添加header头,这里是个元祖,不是字典
req.add_header('accept','application/json, text/javascript, */*; q=0.01')
#这时再去请求就是带有浏览器标识的报文了
html = urllib.request.urlopen(req).read()
result = json.loads(html)
# 每一段都加上title标题
# f.write('# '+result['title']+'\r\n')
# 写入内容
f.write(result['content'])
f.close()
完美

好了 现在是打印的事了,我觉得手册原生的就挺好看,直接注册了个账号复制进去了


一页到底
好 现在导出pdf发给淘宝打印还是自己在公司打印都可以了

可以删了这个元素 不然打印的每一页都有页头

恩~ 这么打印就很香了