微信公众号内容采集,比较怪异,其参数,post参数需要话费时间去搞定,这里采集的是话题标签的内容,同时应用了pdfkit打印输出内容。

这里实现应用了两个版本,第一个是直接网页访问,其真实地址即post网址也存在比较多的参数,没有尝试过,获取到的内容仅有部分,比较不理想。第二个版本是采用了无头浏览器直接访问,获取到网页源码,进行解析,得到想要的内容。

本渣渣现在比较懒,代码都是拿以前的,现成的,复制,改改,直接使用的!

版本一:

#微信公众号内容获取打印pdf
#by 微信:huguo00289
#https://mp.weixin.qq.com/mp/homepage?__biz=MzA4NjQ3MDk4OA==&hid=5&sn=573b1b806f9ebf63171a56ee2936b883&devicetype=android-29&version=27001239&lang=zh_CN&nettype=WIFI&a=&session_us=gh_7d55ab2d943f&wx_header=1&fontScale=100&from=timeline&isappinstalled=0&scene=1&subscene=2&clicktime=1594602258&enterid=1594602258&ascene=14
# -*- coding: UTF-8 -*-
import requests
from fake_useragent import UserAgent
import os,re
import pdfkitconfg = pdfkit.configuration(wkhtmltopdf=r'D:\wkhtmltox-0.12.5-1.mxe-cross-win64\wkhtmltox\bin\wkhtmltopdf.exe')class Du():def __init__(self,furl):ua=UserAgent()self.headers={"User-Agent": ua.random,}self.url=furldef get_urls(self):response=requests.get(self.url,headers=self.headers,timeout=8)html=response.content.decode('utf-8')req=re.findall(r'var data={(.+?)if',html,re.S)[0]urls=re.findall(r',"link":"(.+?)",',req,re.S)urls=set(urls)print(len(urls))return urlsdef get_content(self,url,category):response = requests.get(url, headers=self.headers, timeout=8)print(response.status_code)html = response.content.decode('utf-8')req = re.findall(r'<div id="img-content" class="rich_media_wrp">(.+?)var first_sceen__time',html,re.S)[0]#获取标题h1=re.findall(r'<h2 class="rich_media_title" id="activity-name">(.+?)</h2>',req,re.S)[0]h1=h1.strip()pattern = r"[\/\\\:\*\?\"\<\>\|]"h1 = re.sub(pattern, "_", h1)  # 替换为下划线print(h1)#获取详情detail = re.findall(r'<div class="rich_media_content " id="js_content" style="visibility: hidden;">(.+?)<script nonce=".+?" type="text/javascript">',req,re.S)[0]data = f'<h1>{h1}</h1>\n{detail}'self.dypdf(h1,data,category)return datadef dypdf(self,h1,data,category):datas = f'<html><head><meta charset="UTF-8"></head><body>{data}</body></html>'print("开始打印内容!")pdfkit.from_string(datas, f'{category}/{h1}.pdf', configuration=confg)print("打印保存成功!")if __name__=='__main__':furl="https://mp.weixin.qq.com/mp/homepage?__biz=MzA4NjQ3MDk4OA==&hid=5&sn=573b1b806f9ebf63171a56ee2936b883&devicetype=android-29&version=27001239&lang=zh_CN&nettype=WIFI&a=&session_us=gh_7d55ab2d943f&wx_header=1&fontScale=100&from=timeline&isappinstalled=0&scene=1&subscene=2&clicktime=1594602258&enterid=1594602258&ascene=14"category="潘通色卡(电子版)"datas = ''os.makedirs(f'{category}/',exist_ok=True)spider=Du(furl)urls=spider.get_urls()for url in urls:print(f">> 正在爬取链接:{url} ..")try:data=spider.get_content(url,category)except Exception as e:print(f"爬取错误,错误代码为:{e}")datas='%s%s%s'%(datas,'\n',data)spider.dypdf(category,datas,category)

版本二:

#微信公众号内容获取打印pdf
#by 微信:huguo00289
#https://mp.weixin.qq.com/mp/homepage?__biz=MzA4NjQ3MDk4OA==&hid=5&sn=573b1b806f9ebf63171a56ee2936b883&devicetype=android-29&version=27001239&lang=zh_CN&nettype=WIFI&a=&session_us=gh_7d55ab2d943f&wx_header=1&fontScale=100&from=timeline&isappinstalled=0&scene=1&subscene=2&clicktime=1594602258&enterid=1594602258&ascene=14
# -*- coding: UTF-8 -*-
import requests
from selenium import webdriver
import os,re,time
import pdfkit
from bs4 import BeautifulSoupconfg = pdfkit.configuration(wkhtmltopdf=r'D:\wkhtmltox-0.12.5-1.mxe-cross-win64\wkhtmltox\bin\wkhtmltopdf.exe')class wx():def __init__(self,furl):self.url = furlself.chrome_driver = r'C:\Users\Administrator\Desktop\chromedriver_win32\chromedriver.exe'  # chromedriver的文件位置self.browser = webdriver.Chrome(executable_path=self.chrome_driver)def get_urls(self):urls=[]self.browser.get(self.url)hrefs=self.browser.find_elements_by_xpath("//div[@class='article_list']/a[@class='list_item js_post']")for href in hrefs:url=href.get_attribute('href')urls.append(url)print(len(urls))return urlsdef get_content(self,url,category):self.browser.get(url)time.sleep(5)# 调用driver的page_source属性获取页面源码pageSource = self.browser.page_sourcesoup=BeautifulSoup(pageSource,'lxml')#获取标题h1=re.findall(r'<h2 class="rich_media_title" id="activity-name">(.+?)</h2>',pageSource,re.S)[0]h1=h1.strip()pattern = r"[\/\\\:\*\?\"\<\>\|]"h1 = re.sub(pattern, "_", h1)  # 替换为下划线print(h1)#获取详情detail =soup.find('div',class_="rich_media_content")detail=str(detail)del_text="""<p class="" style="margin-top: -1px; max-width: 100%; font-family: 微软雅黑; white-space: normal; min-height: 40px; visibility: visible; height: 40px; line-height: 40px; border-radius: 10px; text-align: center; box-shadow: rgb(190, 190, 190) 0px 3px 5px; color: rgb(255, 255, 255); box-sizing: border-box !important; word-wrap: break-word !important; background-image: none; background-attachment: scroll; background-color: rgb(245, 143, 198); background-position: 0% 0%; background-repeat: repeat;"><strong class="" style="max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important;"><span style="max-width: 100%; font-size: 14px; box-sizing: border-box !important; word-wrap: break-word !important;">↑ 点击上方<span style="max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important;">“染整百科”</span>关注我们</span></strong></p>"""detail=detail.replace(del_text,'')data = f'<h1>{h1}</h1>\n{detail}'self.dypdf(h1,data,category)return datadef dypdf(self,h1,data,category):datas = f'<html><head><meta charset="UTF-8"></head><body>{data}</body></html>'print("开始打印内容!")pdfkit.from_string(datas, f'{category}/{h1}.pdf', configuration=confg)print("打印保存成功!")def quit(self):self.browser.quit()if __name__=='__main__':furl="https://mp.weixin.qq.com/mp/homepage?__biz=MzA4NjQ3MDk4OA==&hid=5&sn=573b1b806f9ebf63171a56ee2936b883&devicetype=android-29&version=27001239&lang=zh_CN&nettype=WIFI&a=&session_us=gh_7d55ab2d943f&wx_header=1&fontScale=100&from=timeline&isappinstalled=0&scene=1&subscene=2&clicktime=1594602258&enterid=1594602258&ascene=14"category="潘通色卡(电子版)"datas = ''os.makedirs(f'{category}/',exist_ok=True)spider=wx(furl)urls=spider.get_urls()for url in urls:print(f">> 正在爬取链接:{url} ..")try:data=spider.get_content(url,category)except Exception as e:print(f"爬取错误,错误代码为:{e}")datas='%s%s%s'%(datas,'\n',data)spider.quit()spider.dypdf(category,datas,category)

以上代码仅供参考,如有雷同,那肯定是本渣渣抄袭的!

微信公众号:二爷记

不定时分享python源码及工具

Python爬虫,微信公众号话题标签内容采集打印PDF输出相关推荐

  1. [python 爬虫]微信公众号权律二表情和壁纸爬虫

    搜狗搜索引擎可以搜索到微信的公众号,许久没有爬虫了,最近买了崔大神的<python网络爬虫开发实战>,感觉又回到了一年前初学爬虫时满怀激情的时代.下面小试牛刀,利用一些基本的库 reque ...

  2. 腾讯云TCB云函数抓取微信订阅号话题标签文章

    本文记录如何使用云函数实现微信公众号话题标签文章列表的抓取 # 实验准备 获取订阅号话题标签链接 # 核心代码 需求是获取文章的标题.跳转链接.发布时间及文章配图的缩略图就可以了,具体代码如下. 'u ...

  3. python爬微信公众号视频_python爬虫公众号所有信息,并批量下载公众号视频

    之前写过一篇类似的文章:python爬取公众号,用最简单的方式爬虫 还有同学一直在问,可能中间有一些小细节不明确,这次彻底明确一下细节. 本篇添加一个批量下载公众号内视频的功能,可以实现完全复制一个公 ...

  4. 基于Python实现微信公众号爬虫进行数据分析

    学爬虫有什么用 网络爬虫是一个非常注重实践性而且实用性很强的编程技能,它不是程序员的专属技能,任何具有一定编程基础的人都可以学习爬虫,写爬虫分析股票走势,上链家爬房源分析房价趋势,爬知乎.爬豆瓣.爬新 ...

  5. 公众号话题标签怎样添加

    公众号话题标签:就是把发布过的文章归类整理汇总,在公众号文章标题的下方显示 用户点击话题,便可阅读[话题标签]里面的所有文章 设置[话题标签],可以更大限度被用户搜索并订阅 也就意味着,符合用户搜索话 ...

  6. 基于python的公众号课堂教学_基于Python的微信公众号数据挖掘分析

    基于Python的微信公众号数据挖掘分析 华南农业大学电子工程学院 王 建 黄宁香 [期刊名称]电子世界 [年(卷),期]2019(000)011 [总页数]3 运用Python网络爬虫技术对某时事类 ...

  7. python训练营微信公众号真实性_用python进行微信公众号开发(仅测试学习)

    今天看到篇教程,是用python开发微信公众号的,觉得有意思,就敲代码实现了一下,成功后更觉得好玩,故记录,方便开发深入时使用. 基础背景介绍: 首先得有个人微信号(没有自行注册),为方便测试学习: ...

  8. python下载微信公众号文章_python如何导出微信公众号文章方法详解

    1.安装wkhtmltopdf 下载地址:https://wkhtmltopdf.org/downloads.html 我测试用的是windows的,下载安装后结果如下 2 编写python 代码导出 ...

  9. python使用微信设置-Python使用微信公众号实现自动回复

    原标题:Python使用微信公众号实现自动回复 作者:睿江云计算 Python作为一门热门的编程语言,已经被很多编程爱好者所使用,下面我们就看看它是怎么与公众号的对接,并且实现一些回复文字,图片内容. ...

最新文章

  1. [C#][EF] 添加表添加不进来
  2. 开源图像检索项目PicSearch is now an open source project
  3. Stanford UFLDL教程 数据预处理
  4. Win7 NFS 设置详解 | X-Space
  5. 一个关于sql server索引与填充因子的链接
  6. SharePoint 2013 - System Features
  7. button onclick 多个同名_多个按钮的OnClickListener()android
  8. LeetCode 389. 找不同(位运算)
  9. laravel 分词搜索匹配度_elasticsearch基础笔记9-elasticsearch 词项全文搜索
  10. 10个好用的Web日志安全分析工具
  11. 发电机机房设计规范_柴油发电机的容量选择,以及柴油发电机机房设计规范要求!...
  12. [wine5.0] ubuntu超级详细的wine5.0攻略(安装配置wine、微信、游戏等)
  13. 想吃水果的朋友进来吧,水果类英文单词收集
  14. 25.JavaScript的Symbol类型、隐藏属性、全局注册表
  15. 繁易MQTT简单操作说明
  16. 手机酷狗2 java_酷狗叮咚(原手机酷狗) 2.70 For Java 中文官方安装版下载
  17. Reallusion iClone Pro(实时3d动画设计软件)官方正式版V7.92.5425.1 | 含iclone7安装教程以及iclone7设置中文方法
  18. 做个成功的嵌入式系统工程师
  19. 去除人声--安装和使用spleeter分离人声和背景声
  20. 计算机系统开机黑屏怎么办,电脑开机进入系统中就黑屏怎么办?

热门文章

  1. python列表增删改查函数_Python之List列表的增删改查
  2. 【ztree系列】节点的增删改
  3. C语言-在scanf表示什么,在c语言中scanf代表什么意思?
  4. OLTR Large-Scale Long-Tailed Recognition in an OpenWorld
  5. PHP单页面加密视频教程附源码,thinkphp3.2最新版本项目实战视频教程(含源码)
  6. Linux第一本书 第八章 系统中的软件管理
  7. visual错误:R6025 pure virtual funcion call
  8. Halcon 缺陷检测 PCB板检查(灰度开闭运算)
  9. [Object-C]_[初级]_[关于块block的引用外部变量的规则]
  10. linux软AP实现,hostapd+dhcpd+dnsmasq