judgecx 发表于 2022-6-11 21:48

微信公众号文章获取

本帖最后由 judgecx 于 2022-6-12 00:43 编辑

之前写的那个是模拟去复制粘贴的 现在这个是自动去
fiddle 配置教程 自行去看 Fiddler安装与配置以及Fiddler的移动端抓包_LYN-Favorite的博客-CSDN博客_fiddler配置
要自行去下载微信2.9.5.41 版本或者更低版本 论坛里面有 自行搜索 到时候再改良 是这几天时不时就写下 所以很乱 但是也能用
cookie和key的有效期是半个小时左右的 过期后自己再重新去抓取


使用教程http://101.33.206.206/20220611214013.zip 下载zip包 自己解压了 自己看



获取公众号首页的十来篇文章
import requests
import pypandoc
import time
import pdfkit
from lxml import etree

#获取首页标题并保存内容

headers = {
    "Host": "mp.weixin.qq.com",
    "User-Agent": "Mozilla/5.0 (Linux; Android 10; WLZ-AN00 Build/HUAWEIWLZ-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/3225 MMWEBSDK/201201 Mobile Safari/537.36 MMWEBID/5471 MicroMessenger/7.0.22.1820(0x2700163B) Process/toolsmp WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
    "Cookie": "wxuin=734864449; devicetype=Windows10x64; version=62090529; lang=zh_CN; pass_ticket=OCywUL8u3cNrUaTK+dUaeSmss3ENFAVB3xHg9zR3yGVcmDcllKVLYnfqJDQdqviE; wap_sid2=CMHItN4CEooBeV9IQWhfOUtvR1F2bkl2Ml8tUkNvSVh6VC1kRmlsTFBtZXVVVFI4bjVaN1g3cDY1RnRtajFiTkx6d3pIQ3R2TGV0b0ViZzRsWjlVWVJUd1NrMVc4Um1La1RhU2xmd1lKTW5CNGVvZWJIeVhYT0RTMk5KNnB1N19YanBjNlhpd0NjcTgyOFNBQUF+MLu0kpUGOA1AlU4="
}
def ge(url):
    r = requests.get(url,headers=headers)


    #url='https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzAwMzYxNzc1OA==&scene=124#wechat_redirect'
    #r = requests.get(url,headers=headers)
    #print(r.text)
    rc = len(r.text.split("{"title":""))
    for i in range(1,rc):
      #r_title = r.text.split("{"title":"").split("&")
      r_url = r.text.split("content_url":"").split("","source_url")
      #print(r_title,r_url)
      with open('00111.txt', 'a+') as f:
            f.write(r_url+'\n')

with open("urls.txt",'r') as f:
    urls = f.readlines()
for url in urls:
    ge(url)

def ge1(url1):
    res = requests.get(url1)
    a =res.text
    etree_html = etree.HTML(res.text)
    #print(etree_html)
    content= etree_html.xpath('//*[@id="activity-name"]/text()')#获取标题
    #print(content)
   
    for each in content:#去除标题多余的字符
      replace = each.replace('\n', '').replace(' ', '')
      if replace == '\n' or replace== '':
            continue
      aa= replace
      print(aa)

    rule = r'?*:“”"<>\/|--()~`.《》·、,。?&……%¥#@!!$^_=+'#去除不能命名的字符
    for c in rule:
      aa = aa.replace(c,"")

    with open(aa+'.html', 'a+',encoding='utf-8') as f:
      f.write(a)
    #创建一个变量存储原字符
    datasrc = "data-src"
    # 创建一个变量存储要修改的字符
    src = "src"
    #只读模式打开文件
    with open(aa+'.html', 'r',encoding='UTF-8') as file:
      # 使用 read() 函数读取文件内容并将它们存储在一个新变量中
            data = file.read()
      # 使用 replace() 函数搜索和替换文本
            data = data.replace(datasrc, src)
    # 以只写模式打开我们的文本文件以写入替换的内容
    with open(aa+'.html', 'w',encoding='UTF-8') as file:
      # 在我们的文本文件中写入替换的数据
            file.write(data)
    time.sleep(2)
    with open('00111.txt', 'r',encoding='gbk') as f:
            line = f.readlines()# 读取文件
            line = line# 只读取第一行之后的内容
            f = open('00111.txt', mode='w', encoding='gbk')# 以写入的形式打开txt文件
            f.writelines(line)    # 将修改后的文本内容写入
with open("00111.txt",'r') as f:
    urls = f.readlines()
for url1 in urls:
    ge1(url1)

获取公众号其他页面的
import requests
import pypandoc
import time
import pdfkit
from lxml import etree
import json
#获取其他页面并保存内容
u = 'https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz=MzAwMzYxNzc1OA==&f=json&offset='

for x in range(10,20,10):
      url = str(u)+str(x)+"&count=10&is_ok=1&scene=124&uin=NzM0ODY0NDQ5&key=2dfcb79daaf542fa15b98469da8929fa378f4f9e225fa10e509d5998a5bcc2c81715e3031a54899b6a98cdc26adeeb825aae3c891b6a736333f0001825d9c34026b436333a580c60b8193c91a48b02dc8f3751aaf46d8c51f42c1dfe0ea2553ee5554a98f9e61d041b98ad2af7708b0aad947afea48fa366ac762526d5d84f48"
      aa = url
      #print(aa)
      a1 = requests.get(aa)
      rc1 = len(a1.text.split('''\\"title\\":\\"'''))
      for i1 in range(1,rc1):
                r_title1 = a1.text.split('''\\"title\\":\\"''').split('''\\",''')
                r_url3 = a1.text.split('''"content_url\\":\\"''').split('''\\",\\"source_url''')
                #print(r_title1,r_url3)
                rule1 = "\\"
                for c1 in rule1:
                        r_url3 = r_url3.replace(c1,"")
                        aa2 = r_url3
                        print(aa2)
                        with open('ymbt.txt', 'a+') as f:
                              f.write(aa2+'\n')
time.sleep(1)
def ge1(url1):
    res = requests.get(url1)
    a =res.text
    etree_html = etree.HTML(res.text)
    #print(etree_html)
    content= etree_html.xpath('//*[@id="activity-name"]/text()')#获取标题
    #print(content)
   
    for each in content:#去除标题多余的字符
      replace = each.replace('\n', '').replace(' ', '')
      if replace == '\n' or replace== '':
            continue
      aa1= replace
      print(aa1)

    rule = r'?*:“”"<>\/|--()~`.《》·、,。?&……%¥#@!!$^_=+'#去除不能命名的字符
    for c in rule:
      aa1 = aa1.replace(c,"")

    with open(aa1+'.html', 'a+',encoding='utf-8') as f:
      f.write(a)
    #创建一个变量存储原字符
    datasrc = "data-src"
    # 创建一个变量存储要修改的字符
    src = "src"
    #只读模式打开文件
    with open(aa1+'.html', 'r',encoding='UTF-8') as file:
      # 使用 read() 函数读取文件内容并将它们存储在一个新变量中
            data = file.read()
      # 使用 replace() 函数搜索和替换文本
            data = data.replace(datasrc, src)
    # 以只写模式打开我们的文本文件以写入替换的内容
    with open(aa1+'.html', 'w+',encoding='UTF-8') as file:
      # 在我们的文本文件中写入替换的数据
            file.write(data)
    time.sleep(2)
    with open('ymbt.txt', 'r',encoding='gbk') as f:
            line = f.readlines()# 读取文件
            line = line# 只读取第一行之后的内容
            f = open('ymbt.txt', mode='w', encoding='gbk')# 以写入的形式打开txt文件
            f.writelines(line)    # 将修改后的文本内容写入
with open("ymbt.txt",'r') as f:
    urls = f.readlines()
for url1 in urls:
    ge1(url1)

一路有你 发表于 2022-6-12 00:32

有成品吗

fengbaby2003 发表于 2022-6-12 07:56

xyxrrr 发表于 2022-6-11 22:50
视频链接下载不了呢

微信公众号视频下载推荐方法是:用QQ浏览器打开微信公众号网页,然后点击其中一个视频,右击它,选择“检查”,右侧会出现一个对话框,请选择“Network”,然后选择“Media",然后点击你要下载的视频进行播放,在播放的时候右侧对话框会出现一个进度条,然后选择进度条,并右击,选择”open in new tab“,视频会在新的一个页面打开,然后点击这个视频播放并右击,保存视频到你的桌面文件夹里。下载好后自己把名字复制上去就可以了,不过视频要一个一个的去操作下载。{:1_918:}

agh031 发表于 2022-6-11 22:40

感谢分享{:1_905:}

xyxrrr 发表于 2022-6-11 22:50

songing 发表于 2022-6-11 23:13

楼主考虑出个成品吗?{:301_998:}

oclassic 发表于 2022-6-11 23:15

不明觉厉。留着Mark一下

大大泡泡糖121 发表于 2022-6-11 23:25

感谢分享, Fiddler确实是个很好用的工具,记得以前qq飞车的时候都用这个抓包改代码。

漁滒 发表于 2022-6-11 23:45

有没有办法可以不登录来获取呢?

大罗金仙 发表于 2022-6-12 00:04

好东西收藏了

KatharsisKing 发表于 2022-6-12 00:28

页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 微信公众号文章获取