免费获取:python自动获取微信公众号最新文章(python自动获取微信公众号最新文章)

优采云 发布时间: 2022-12-02 02:47

  免费获取:python自动获取微信公众号最新文章(python自动获取微信公众号最新文章)

  微信公众号获取思路

  微信公众号文章获取常用方法有搜狐、微信公众号首页获取、API接口等。

  听说搜狐最近不太好用,之前用的API接口也经常维护,所以就用微信公众平台来爬取数据。

  首先登录自己的微信公众平台。如果您没有帐户,可以注册一个。进去后找“图文信息”,就是写公众号的地方

  点进去后是写公众号文章的界面。在界面中,找到“超链接”栏,您可以在这里搜索其他公众号。

  以“python”为例,输入要检索的公众号名称,在显示的公众号中选择要采集的公众号

  点击浏览器查看,在网络中找到下图链接,右边的Request URL才是真实存储公众号数据的链接。说明这是一个json网页。

  集合实例

  以公众号“python”的链接为例,对URL进行分析。

  https://mp.weixin.qq.com/cgi-bin/appmsg:微信公众平台的链接

"token": "163455614", #需要定期修改的token

"lang": "zh_CN", #语言

"f": "json",

"ajax": "1", #显示几天的文章

"action": "list_ex"

"begin": "0", #起始页面

"count": "1", #计数

"query": "",

"fakeid": 'MzIwNDA1OTM4NQ==', #公众号唯一编码

"type": "9",

  既然发现fakeid是唯一代表公众号的代码,那你只需要找到你需要的公众号的fakeid就可以了。我随机找了三个公众号进行测试。

  fakeid=[ 'MzIwNDA1OTM4NQ==','MzkxNzAwMDkwNQ==','MjM5NzI0NTY3Mg==']

#若增加公众号需要增加fakeid

  然后下一步就是对URL的请求

  首先导入需要的库

  import time

import requests

from lxml import etree

import pandas as pd

import json

import numpy as np

import datetime

import urllib3

from urllib3.exceptions import InsecureRequestWarning

urllib3.disable_warnings(InsecureRequestWarning)

  由于不想重复登录公众号平台,可以使用cookies避免登录。求文章前,需要找到网页的cookie和User-Agent。由于微信公众号是定时刷新的,所以这个cookie和上面的token也要定时更换。

  为了避免反扒,最好找个代理ip

  headers = {

"Cookie": "appmsglist_action_3567997841=card;wxuin=49763073568536;pgv_pvid=6311844914;ua_id=x6Ri8bc9LeaWnjNNAAAAADI-VXURALRxlSurJyxNNvg=;mm_lang=zh_CN;pac_uid=0_3cf43daf28071;eas_sid=11Q6v5b0x484W9i7W0Z7l7m3I8;rewardsn=;wxtokenkey=777;wwapp.vid=;wwapp.cst=;wwapp.deviceid=;uuid=fd43d0b369e634ab667a99eade075932;rand_info=CAESIHgWwDfp3W4M9F3/TGnzHp4kKkrkMiCEvN/tSNhHtNBm;slave_bizuin=3567997841;data_bizuin=3567997841;bizuin=3567997841;data_ticket=IfMEEajZ8UvywUZ1NiIv9eKZkq0cgeS0oP6tTzEwNSjwK6q+u5vLw0XYeFvLL/JA;slave_sid=aVBzSlpYOGt4eTdmbzFRWDc1OUhzR1A1UkwzdUdBaklDaGh2dWY2MUZKTEw1Um1aalZRUXg5aVBMeEJVNklCcGlVN0s5Z3VEMmRtVENHS1ZxNTBDOWRCR0p2V2FyY2daU0hxT09Remd5YmlhRWExZkMwblpweVc3SndUbnJIQk55MGhUeExJa1NJcWZ0QmJS;slave_user=gh_e0f449d4f2b6;xid=7d5dc56bb7bb526c70cfef3f6bdfa18a",

<p>

" />

"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36",

}

proxies = {'http': '112.80.248.73'}

</p>

  接下来可以爬取页面,获取页面中的文章标题和文章链接,以及文章的时间,分析网页的信息,发现该网页的所有信息都存储在'app_msg_list字段中',所以这个字段中的数据被提取出来。

  寻找

  代码如下:

  def get_weixin(fakeid):

url = "https://mp.weixin.qq.com/cgi-bin/appmsg"

# 使用Cookie,跳过登陆操作

#headers 根据自己电脑修改

headers = {

"Cookie": "appmsglist_action_3567997841=card; wxuin=49763073568536; pgv_pvid=6311844914; ua_id=x6Ri8bc9LeaWnjNNAAAAADI-VXURALRxlSurJyxNNvg=; mm_lang=zh_CN; pac_uid=0_3cf43daf28071; eas_sid=11Q6v5b0x484W9i7W0Z7l7m3I8; rewardsn=; wxtokenkey=777; wwapp.vid=; wwapp.cst=; wwapp.deviceid=; uuid=fd43d0b369e634ab667a99eade075932; rand_info=CAESIHgWwDfp3W4M9F3/TGnzHp4kKkrkMiCEvN/tSNhHtNBm; slave_bizuin=3567997841; data_bizuin=3567997841; bizuin=3567997841; data_ticket=IfMEEajZ8UvywUZ1NiIv9eKZkq0cgeS0oP6tTzEwNSjwK6q+u5vLw0XYeFvLL/JA; slave_sid=aVBzSlpYOGt4eTdmbzFRWDc1OUhzR1A1UkwzdUdBaklDaGh2dWY2MUZKTEw1Um1aalZRUXg5aVBMeEJVNklCcGlVN0s5Z3VEMmRtVENHS1ZxNTBDOWRCR0p2V2FyY2daU0hxT09Remd5YmlhRWExZkMwblpweVc3SndUbnJIQk55MGhUeExJa1NJcWZ0QmJS; slave_user=gh_e0f449d4f2b6; xid=7d5dc56bb7bb526c70cfef3f6bdfa18a",

"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36",

}

dda=[]

for i in range(0,len(fakeid)):

#配置网址

data= {

"token": "163455614", #需要定期修改

"lang": "zh_CN",

"f": "json",

"ajax": "1",

"action": "list_ex",

"begin": "0",

"count": "1",

"query": "",

"fakeid": fakeid[i],

"type": "9",

}

dda.append(data)

content_list = []

proxies = {'http': '112.80.248.73'}

ur=[]

title=[]

link=[]

time1=[]

content_li=[]

for i in range(0,len(dda)):

time.sleep(np.random.randint(90, 200))

content_json = requests.get(url, headers=headers, params=dda[i],proxies=proxies,verify=False).json()

print("爬取成功第"+str(i)+"个")

# 返回了一个json,里面是每一页的数据

<p>

" />

for it in content_json["app_msg_list"]: #提取信息

its = []

title.append(it["title"]) #标题

link.append(it["link"]) #链接

time1.append(it['create_time']) #时间

#content_li.append(its)

columns={'title':title,'link':link,'time':time1} #组成df文件

df=pd.DataFrame(columns)

return df

</p>

  得到的数据包存放在df中。这里的数据不是微信公众号的最新文章数据,而是微信公众号最近一天发送的文章数据。因此,对发帖时间进行筛选也是很有必要的。注意这里的时间格式是时间戳,所以需要转换时间数据

  转换代码如下:

  def time_s(df):

def transfer_time(s): #时间处理

aa = time.ctime(s)

bb = aa.split(' ')

cc = (bb[-1]+"-"+bb[1]+"-"+bb[-3]).replace('Jan','1').replace('Feb','2').replace('Mar','3'). \

replace('Apr','4').replace('May','5').replace('Jun','6').replace('Jul','7').replace('Aug','8') \

.replace('Sep','9').replace('Oct','10').replace('Nov','11').replace('Dec','12')

dd = datetime.datetime.strptime(cc,'%Y-%m-%d').date()

return dd

ti=[]

hd=[]

for i in range(0,len(df['time'])):

timestap= transfer_time(df['time'][i])

ti.append(timestap)

#print(ti)

d= ti[i] + datetime.timedelta(weeks=0, days=0, hours=0, minutes=0, seconds=0, milliseconds=0, microseconds=0, )

#dc = d.strftime("%Y-%m-%d")

hd.append(d)

df['time']=hd

  这样就可以将微信公众号的时间戳数据转换成时间数据。之后就可以按照当天的日期提取数据集中的内容存储了。

  dat=df[df['time'] == datetime.date.today() + datetime.timedelta(days= -1)] #自动获取昨天日期,将-1改为-2,则为前天的日期,以此类推

##改自动化

path = 'C:/Users/gpower/Desktop/work/行业信息/' #根据自己电脑位置更改

import re

filename=path+"微信公众号采集" + re.sub(r'[^0-9]','',datetime.datetime.now().strftime("%Y-%m-%d")) + '.csv'

# 对文件进行命名,以“微信公众号采集+当前日期”命名

dat.to_csv(filename,encoding='utf_8_sig')

print("保存成功")

  这样就可以采集

到所需微信公众号的最新文章。如果需要多个微信公众号,将公众号的识别码添加到fakeid即可~

  新品属于是

  最新版本:文章自动采集插件

  文章自动采集插件可以从网站爬虫入手。pythonscrapy爬虫,wordpress模拟登录工具,javascript验证爬虫工具 最后,如果你真的想玩网站爬虫,就到这一步了。其中使用javascript验证爬虫工具需要在需要验证的网站上配置web环境,安装库,使用浏览器验证来爬取返回的javascript。

  javascript 验证插件是如何做到的?其实配置爬虫的人已经配置好了,你当然很难去验证。比如题主自然不会傻傻的去配置环境。其实你可以用同样的方法将javascript认证插件应用到你的目标网站,就像登录wordpress一样。

  找几本关于网络爬虫的书

  

" />

  推荐看看laravel的源码,做个网站。

  Laravel5不会写,那就不要写wordpress了,先完成功能再写,前后端分离。

  随便去某宝搜一下cpvv,关键字laravel和wordpress,就会有一堆教程,看一看。

  

" />

  wordpress入门教程/资料一大堆,一键安装,无需搭建wordpress。

  这个很简单,写一个爬虫,使用有财云、马克鳗、犀牛云(电子书)等工具。具体的安装过程网上可以查到,然后用selenium。其实我也推荐用selenium+python3写的,可以自己写一个自动化的,万一这个网站需要你去采集数据,

  优采云

采集器是一款网站采集器,根据用户提供的关键词自动采集云端相关文章发布到用户网站。可以自动识别各种网页的标题、正文等信息,无需用户编写任何采集规则,即可进行全网采集。采集

内容后,会自动计算内容与集合关键词的关联度,只向用户推送相关文章。支持标题前缀、关键词自动加粗、固定链接插入、自动提取Tags、自动内链、自动图片匹配、自动伪原创、内容过滤和替换、电话号码和URL清洗、定时采集、百度首创提交等一系列SEO功能。用户只需设置关键词及相关要求,即可实现全托管、零维护网站内容更新。网站数量没有限制,无论是单个网站还是大量的站群,都可以非常方便的进行管理。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线