微信公众号文章转pdf下载,不难也不太容易,磕磕绊绊倒是不少如何用xpath保存网站源码;如何精简你的文章请求链接;如何将文章转化为pdf文件,不乱码,不报错

news/2024/5/20 20:39:52/文章来源:https://blog.csdn.net/m0_46131074/article/details/119134597

目录

  • 敲黑板
  • 抓包分析
    • 看碟下菜,确认分析思路
    • 锁定有效数据包
    • 分析响应信息和请求连接
  • 黑板报
    • 如何用xpath保存网站源码
    • 如何精简你的文章请求链接
    • 如何将文章转化为pdf文件,不乱码,不报错
  • 总结

敲黑板

本章主要运用的知识点:

如何用xpath保存网站源码

如何精简你的文章请求链接

如何将文章转化为pdf文件,不乱码,不报错

抓包分析

看碟下菜,确认分析思路

首先,我们打开fd抓包工具,这个不会的可以百度查一下,操作很简单的,你浏览器f12会用,fd也很容易上手。

首先打开一个公众号,我们用fd抓包工具看一看

在这里插入图片描述在这里插入图片描述我们首先往文章下方滑动,这种平台一般都是ajax请求,因为一个公众号的文章会非常非常的多,不可能用一个或几个数据包就能搞定。

锁定有效数据包

那我们就一直往下滑动,看看哪个包很可疑

在这里插入图片描述
显示的包就这几类,图片类型的数据包根本不用看,直接排除,很明显js的数据包很可疑,那我们就打开看看

分析响应信息和请求连接

我们发现编号为3和44的连个包就是实际加载出的有用数据。他们的链接非常相近,返回的都是json数据。通过json解析,可以看到一下数据。(有一些内容可以用翻译软件翻译)

在这里插入图片描述
关于这些代表的含义,我都放到图片上了。至于怎么知道这些数据意思的。我个人的建议是多抓几个相同类型的数据,然后放在一起对比他们到底啥意思。再就是多用翻译软件翻译一下他们的意思,就能大致推测出他的意思了(贼羡慕那些英语好的人)

再看看链接:
fd正确提取链接的姿势
选中链接,右键选择copy,再选择just url即可复制

https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz=MzAxMDY0ODUxMw==&f=json&offset=10&count=10&is_ok=1&scene=124&uin=MTE3MjUxNTc2&key=542f0975b77f604f0e3521f4da1bd512ff02357891633b7f01a38d924a645645c8eb808d64aba651d9e55c3d9444ba961fbf909bc8ebdd8fc15b0deae9d2d391b5b9a0f9e6e7b63eb7c1f1378d6d20668ff64d64147ca4abab8048d9df34277ede91dba1619956daa6b8a4842a013b2f2f9eca0e63b773bfcb36687e4a5b0a92&pass_ticket=69imYjSMks9IGfcK7X8eE5w4jUQFOF%2FUtvxsrnWVbwrXhYXUtFg7yR%2Fr0BstOVnf&wxtoken=&appmsg_token=1123_mqum%252BOJVFmZIEYAasjmKkpKmtg8S0iWMVLRJXQ~~&x5=0&f=json

他的数据很多,链接很长,为我们产生了很多的困扰,既然这样,我们就用fd自身的工具来获取
在这里插入图片描述
在这里,我们可以看到请求链接中的参数信息。通过测试,我可以明确告诉大家,这里面有些东西是可以删除的。
这么做的好处是,精简提交链接(说实话,我感觉在这块易语言比python方便好用多了),有些值不容易获取,写死了不行,不写死你还找不到数据,但是可以直接删掉。嘿,这是不是爽歪歪。

这里我给大家一些提示,可以先复制链接到一个文档中,再一个参数一个参数的删,删一个,我们拿到浏览器上访问,有数据就是可以,没数据就不行了。如果你对包的分析经验够多,那效率会更高。

至于有一些有变动的数据,我在上文的图片中有所提示,请仔细阅读吧,爬虫这个东西有时效性,也许此时你看到这篇文章实在若干年之后,你从我这里只能得到思路,而不是一段直接复制就能用的代码!

黑板报

如何用xpath保存网站源码

将相应信息返回为字节码
用xpath完成解析,获取指定的源码
再将数据编码为utf-8的正常文件

注:别问我这什么原理,我真的不是太懂python的编码(由于易语言的编码转化过于方便,导致我在python的转化中遇到了很多困扰)。但你这么弄,肯定不会乱码或报错,出问题也是你xpath解析的问题,这都是我百度学的,(_ _)。゜zzZ

	response = requests.get(url, headers=headers)html = etree.HTML(response.content)ret = html.xpath('//*[@id="js_content"]')[0]message = etree.tostring(ret, encoding='utf-8').decode('utf-8')

如何精简你的文章请求链接

在上文的分析请求信息时,已经说了哈

如何将文章转化为pdf文件,不乱码,不报错

我百度了好多文章,发现pdfkit这个库最常用,我也是用这个的。
先导入这个库:pip install pdfkit
他这个东西是基于一个国外程序,而运行的,这也是我有点讨厌他的一个原因。软件名:wkhtmltopdf 他是有官网的,不过我没梯子,下载不了,我是在国内的网站上找到了他的安装程序,然后下载直接默认到c盘即可。他真的不大!不会让你的c盘爆红滴。

接下来就是这一套了,直接复制就行,没什么技术含量,不需要背。

    path_pdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'config = pdfkit.configuration(wkhtmltopdf = path_pdf)pdfkit.from_string(content,'./pdf/'+filename+'.pdf',configuration=config)

要说一下,最后一个pdfkit.from…这个,他有三种方法,一种是将字符串打印为pdf,一种是将文件变pdf,还有一种是url变pdf

1其中用url变pdf最爽,但是很容易报错,只能看这挺爽就是了,实际上刚开炮就软了,啥也不是。2至于存放为pdf,这东西不上不下的,没啥意思,因为他需要将源码保存到本地,效率低3推荐字符串转化为pdf,效率还好,很少报错

同时链接里面也有一下花花,有时候下载下来的链接,源码都在,但是显示不出文字和图片。给你一下这个方案

先设置一个html,其中的message是存放文章源码的地方。因为你不可能把全部的文章源码都打印,总会有一些广告和乱起八糟的东西。我们只将与文章相关的数据保存。

html_page = '''<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"></head><body>message</body></html>
'''

思路:
1保存跟文章有关的有效数据,存放到message中,如果message中有hidden和data+src字样通通更换,解决了文字和文章无法显示的问题
2将处理后的数据装进html中
3最后将完整的字符串打印出来。

response = requests.get(url, headers=headers)html = etree.HTML(response.content)ret = html.xpath('//*[@id="js_content"]')[0]message = etree.tostring(ret, encoding='utf-8').decode('utf-8')content = html_page.replace('message', message).replace('hidden', 'visible').replace('data-src', 'src')path_pdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'config = pdfkit.configuration(wkhtmltopdf = path_pdf)pdfkit.from_string(content,'./pdf/'+filename+'.pdf',configuration=config)

总结

个人是有一些不爽的地方:这个pdfkit必须要安装一个对应的软件。如果打包发给别人,那这个程序还要打包给他们

所需要的关键数据,提取有些麻烦,可以通过分享链接提取,但是需要微信的ck,打包发给别人使用困难。
我的方法是,下载notepad ,选中公众号上的一小段文字,然后复制
在这里插入图片描述

打开notepad,选择编辑
在这里插入图片描述
点击选择性粘贴,然后粘贴为html
在这里插入图片描述
其中SourceURL中存放有重要数据,可以提取使用,
优点:方便,不要微信ck
缺点:链接有有效期,不确定准确时间,不过也能用很久。

在提取源码的过程中,我发现别人用beautifulsoup提取源码的方式比xpath方便多了 ,打脸。我以前还不屑于用beautifulsoup,看来是我的见识短浅了,多一点了解,可能就是多一条思路了,这一点别学我了

哎呦,说是总结,怎么洋洋洒洒说了这么多废话,溜了溜了,我们下次再见吧。打造个人的技术影响力,还是任重而道远啊。有什么建议欢迎评论区留言,我们一起讨论。

娘嘞,有是和程序员斗智斗勇的一天。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_900113.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线网站的加密混淆JS的分析技巧

混淆后的js 通常来说js加密后犹如天书&#xff0c;各种变量方法都变为了abc&#xff0c;在没有js map文件的情况下更是无法进行js代码调试与定位(或者不方便),本文为大家带来一种定位与调试技巧. 思路如下: 1.在源网站下载需要调试的js代码. 2.使用广告屏蔽插件将原有网站js…

镇江SEO推广:内容页收录很少,怎么办?

在做镇江SEO推广的时候&#xff0c;我们与本地SEO人员相互交流与学习的时间相对较少&#xff0c;有什么问题&#xff0c;都需要自己亲身实践得出经验&#xff0c;进行解决。 其中&#xff0c;在镇江做SEO推广最常见的问题就是&#xff1a;内容页收录的问题&#xff01; 那么&a…

镇江网络SEO:如何让百度收录网站,提高竞争力?

镇江网络SEO&#xff0c;经常会讨论的问题就是如何让百度收录网站&#xff0c;这是目标站点参与排名的一个重要因素&#xff0c;如果网页收录不能很好的达到一定数量级。 那么&#xff0c;很难在后期的竞争中&#xff0c;很难支撑高竞争度的关键词去排名。 那么&#xff0c;镇…

镇江百度SEO:网站收录大量页面,为什么权重一直为0?

对于镇江百度SEO而言&#xff0c;我们经常会面临一个窘境&#xff0c;就是明明网站被收录大量页面&#xff0c;可确没有任何一个排名&#xff0c;网站的权重也一直为零&#xff0c;这让很多镇江的站长头疼。 镇江百度SEO&#xff1a;网站收录大量页面&#xff0c;为什么权重一直…

镇江SEO搜索优化:百度秒收录小方法!

镇江SEO搜索优化的圈子相对较小&#xff0c;很多SEO人员喜欢追求极致的SEO策略&#xff0c;比如&#xff1a;百度秒收录&#xff0c;而实际上&#xff0c;并没有严格意义上的秒收录。 所谓的百度秒收录&#xff0c;只是一个形象的比喻&#xff0c;达到分钟级的收录&#xff0c…

镇江SEO排名:为什么百度掉收录?

在做镇江SEO排名的过程中&#xff0c;偶尔我们会遇到索引量开始缓慢下降的情况&#xff0c;在经过一段时间&#xff0c;就会出现百度掉收录的问题&#xff0c;这让很多SEO人员产生疑问。 明明&#xff0c;我们没有做过任何负面的SEO操作&#xff0c;怎么仍然还会出现百度掉收录…

镇江SEO搜索引擎优化:为什么百度收录差?

做镇江SEO搜索引擎优化的时候&#xff0c;我们偶尔会遇到百度收录差的情况&#xff0c;并不是说百度不收录我们的网页&#xff0c;而是收录进程很缓慢&#xff0c;比如&#xff1a; ① 有的文章刚发布&#xff0c;没几分钟就收录。 ② 有的文章发布几天&#xff0c;才收录。 …

镇江SEO顾问:讲述,怎么查百度收录!

作为镇江SEO顾问&#xff0c;我们每天面对大量的镇江SEO网站的优化&#xff0c;你需要监控每个网站的各项指标&#xff0c;其中&#xff0c;查百度收录&#xff0c;是一个重要的工作。 它在做网站评估与诊断的时候&#xff0c;具有重要的意义。 那么&#xff0c;镇江SEO顾问&a…

镇江SEO云优化:如何提高百度收录率?

所谓的镇江SEO云优化&#xff0c;主要是指在镇江做SEO&#xff0c;利用SEO“云”策略&#xff0c;提高百度收录率&#xff0c;他相当于创建一个大的蜘蛛池&#xff0c;吸引大量的百度蜘蛛不断访问这个容器。促使被投放到这个容器中的URL&#xff0c;有效的被百度收录。 那么&am…

镇江企业SEO:百度关键词收录小妙招!

对于镇江企业SEO而言&#xff0c;我们经常会讨论&#xff1a;百度关键词收录的问题。 通常&#xff0c;针对初创的镇江企业而言&#xff0c;我们通常建议选择适当的关键词&#xff0c;而后在考量百度收录的问题&#xff0c;因此网站建设初期&#xff0c;选择关键词显得格外重要…

镇江SEO外包:如何识别百度免费收录的坑?

对于在镇江做SEO而言&#xff0c;我们通常情况下&#xff0c;由于人力资源与时间精力有限&#xff0c;我们通常选择镇江SEO外包&#xff0c;将自己的业务&#xff0c;交给镇江SEO机构&#xff0c;代理完成。 但在实际交流与沟通的过程中&#xff0c;镇江SEO外包的相关团队经常…

镇江SEO咨询:如何让百度收录快?

早些年&#xff0c;在做镇江SEO咨询的时候&#xff0c;我们经常会被问及一个问题&#xff0c;那就是如何让百度收录快&#xff0c;实际上&#xff0c;理论上它受网站的多重因素影响&#xff0c;虽然让百度收录快的流程基本相差无二&#xff0c;但根据自身网站的不同&#xff0c…

视频教程-SEO实战课程之站群优化-其他

SEO实战课程之站群优化 7年开发经验&#xff0c;Web全栈工程师&#xff0c;擅长php,js,mysql,postgresql&#xff0c;开发作品有富群兴SEO站群系统&#xff0c;富群兴电商ERP 黄富庆 18.00 立即订阅 扫码下载「CSDN程序员学院APP」&#xff0c;1000技术好课免费看 APP订阅课程&…

购买老域名,利用桔子seo来查找域名的历史快照信息

一个好的域名&#xff0c;有利于排名。现在越来越多的站点选择老域名来进行建站。 在购买老域名时&#xff0c;如果选择一个好的老域名&#xff0c;特别是域名的历史数据&#xff0c;比如锚文本链接、年龄等。有下面几个维度&#xff0c;可以来作为挑选老域名的标准&#xff1a…

用Gitee Pages服务在线预览vue3前端项目:静态网站+多级路由+history模式(踩坑)

目录 目标与前提 vue打包、预览遇到的坑以及原因 坑①&#xff1a;静态网站打开一片空白 坑②&#xff1a;子路由刷新或直接输入时&#xff0c;网页一片空白或404 坑③&#xff1a;首页加载时间过长 坑④&#xff1a;线上预览地址出错时&#xff0c;不显示404页面 坑⑤&…

《大型网站技术架构核心原理与案例分析》读后感

初读此书的感觉 看完这书我的第一想法就是把书名改为“网站技术架构导论”&#xff0c;没什么别的意思&#xff0c;只是觉得这名字更贴切点&#xff0c;当然作者肯定是不会用这种名字&#xff0c;否则没那个出版社敢去出版了。虽然把一个金光闪闪的名字给换成了low卡&#xff0…

【支付宝支付】Java实现支付宝手机网站支付流程

前言 微信登录网页授权与APP授权 微信JSAPI支付 微信APP支付 微信APP和JSAPI退款 支付宝手机网站支付 支付宝APP支付 支付宝退款 以上我都放到个人公众号&#xff0c;搜一搜&#xff1a;JAVA大贼船&#xff0c;文末有公众号二维码&#xff01;觉得个人以后开发会用到的可以关注…

给单位网站文章发布系统增加一个不完美的文件上传功能

一直觉得单位网站的文章发布系统缺少文件上传功能是个遗憾&#xff0c;不过因为用的是asp来建站——而我的asp知识早忘得差不多了——所以没有点行动表示。但是这几天心血来潮&#xff0c;试着弄了一下&#xff1a; 分析&#xff1a;如果修改数据库的话——打开数据库发现n个表…

动态网站数据采集 - 时光网电影信息爬虫

分析 由于时光网中电影的票房、排名等大部分信息是通过Ajax异步加载的&#xff0c;所以&#xff0c;使用常规的静态网站抓取技术&#xff0c; 无法获取到这些信息。 要获取这些信息&#xff0c;必须从Ajax请求中查找。 先点开一个正在上映的电影 《前任3》 首先&#xff0…

动态网站数据采集 - 去哪儿网火车票查询爬虫

分析 在去哪儿网火车票查询页面&#xff0c;需要用户填写出发站、目的地站、出发时间等信息&#xff0c;然后&#xff0c;点击搜索按钮&#xff0c; 页面通过Ajax获取并显示查询结果数据。 这里用SeleniumPhantomJS模拟这一过程。 通过Selenium加载火车票查询页面&#xff0…