解决方案:1.请求获取对应公众号接口,取到我们需要的fakeid

优采云 发布时间: 2022-11-18 16:43

  解决方案:1.请求获取对应公众号接口,取到我们需要的fakeid

  Python微信公众号文章爬取4.总结

  1.理念

  我们通过微信公众平台网页版图文消息中的超链接获取我们需要的接口

  从接口中我们可以获取对应的微信公众号和所有对应的微信公众号文章。

  2.接口分析

  获取微信公众号的接口:

  范围:

  行动=搜索业务

  开始=0

  计数=5

  query=公众号名称

  token=每个账户对应的token值

  lang=zh_CN

  f=json

  阿贾克斯=1

  请求方式:

  得到

  所以在这个接口中,我们只需要获取token,query就是你需要搜索的公众号,登录后通过网页链接获取token。

  获取公众号对应的文章接口:

  范围:

  动作=list_ex

  开始=0

  计数=5

  fakeid=MjM5NDAwMTA2MA==

  类型=9

  查询=

  令牌=557131216

  lang=zh_CN

  f=json

  阿贾克斯=1

  请求方式:

  得到

  在这个界面中,我们需要获取的值是上一步的token和fakeid,这个fakeid可以在第一个界面中获取到。这样我们就可以拿到微信公众号文章的数据了。

  3.实现第一步:

  首先我们需要通过selenium模拟登录,然后获取cookie和对应的token

  def weChat_login(user, password):

post = {}

browser = webdriver.Chrome()

browser.get('https://mp.weixin.qq.com/')

sleep(3)

browser.delete_all_cookies()

<p>

sleep(2)

# 点击切换到账号密码输入

browser.find_element_by_xpath("//a[@class=&#39;login__type__container__select-type&#39;]").click()

sleep(2)

# 模拟用户点击

input_user = browser.find_element_by_xpath("//input[@name=&#39;account&#39;]")

input_user.send_keys(user)

input_password = browser.find_element_by_xpath("//input[@name=&#39;password&#39;]")

input_password.send_keys(password)

sleep(2)

# 点击登录

browser.find_element_by_xpath("//a[@class=&#39;btn_login&#39;]").click()

sleep(2)

# 微信登录验证

print(&#39;请扫描二维码&#39;)

sleep(20)

# 刷新当前网页

browser.get(&#39;https://mp.weixin.qq.com/&#39;)

sleep(5)

# 获取当前网页链接

url = browser.current_url

# 获取当前cookie

cookies = browser.get_cookies()

for item in cookies:

post[item[&#39;name&#39;]] = item[&#39;value&#39;]

# 转换为字符串

cookie_str = json.dumps(post)

# 存储到本地

with open(&#39;cookie.txt&#39;, &#39;w+&#39;, encoding=&#39;utf-8&#39;) as f:

f.write(cookie_str)

print(&#39;cookie保存到本地成功&#39;)

# 对当前网页链接进行切片,获取到token

paramList = url.strip().split(&#39;?&#39;)[1].split(&#39;&&#39;)

# 定义一个字典存储数据

paramdict = {}

for item in paramList:

paramdict[item.split(&#39;=&#39;)[0]] = item.split(&#39;=&#39;)[1]

# 返回token

return paramdict[&#39;token&#39;]

</p>

  定义了一个登录方法,里面的参数是登录账号和密码,然后定义了一个字典来存放cookie的值。通过模拟用户输入对应的账号密码点击登录,然后会出现扫码验证,使用已登录的微信扫码即可。

  刷新当前网页后,获取当前cookie和token并返回。

  第二步: 1.请求获取对应的公众号接口,获取我们需要的fakeid

   url = &#39;https://mp.weixin.qq.com&#39;

headers = {

&#39;HOST&#39;: &#39;mp.weixin.qq.com&#39;,

<p>

&#39;User-Agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63&#39;

}

with open(&#39;cookie.txt&#39;, &#39;r&#39;, encoding=&#39;utf-8&#39;) as f:

cookie = f.read()

cookies = json.loads(cookie)

resp = requests.get(url=url, headers=headers, cookies=cookies)

search_url = &#39;https://mp.weixin.qq.com/cgi-bin/searchbiz?&#39;

params = {

&#39;action&#39;: &#39;search_biz&#39;,

&#39;begin&#39;: &#39;0&#39;,

&#39;count&#39;: &#39;5&#39;,

&#39;query&#39;: &#39;搜索的公众号名称&#39;,

&#39;token&#39;: token,

&#39;lang&#39;: &#39;zh_CN&#39;,

&#39;f&#39;: &#39;json&#39;,

&#39;ajax&#39;: &#39;1&#39;

}

search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)

</p>

  传入我们获取到的token和cookie,然后通过requests.get请求获取返回的微信公众号的json数据

  lists = search_resp.json().get(&#39;list&#39;)[0]

  可以通过以上代码获取对应的公众号数据

  fakeid = lists.get(&#39;fakeid&#39;)

  通过上面的代码,可以得到对应的fakeid

  2、请求获取微信公众号文章接口,获取我们需要的文章数据

   appmsg_url = &#39;https://mp.weixin.qq.com/cgi-bin/appmsg?&#39;

params_data = {

&#39;action&#39;: &#39;list_ex&#39;,

&#39;begin&#39;: &#39;0&#39;,

&#39;count&#39;: &#39;5&#39;,

&#39;fakeid&#39;: fakeid,

&#39;type&#39;: &#39;9&#39;,

&#39;query&#39;: &#39;&#39;,

&#39;token&#39;: token,

&#39;lang&#39;: &#39;zh_CN&#39;,

&#39;f&#39;: &#39;json&#39;,

&#39;ajax&#39;: &#39;1&#39;

}

appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)

  我们传入fakeid和token,然后调用requests.get请求接口获取返回的json数据。

  我们实现了微信公众号文章的爬取。

  四。概括

  通过微信公众号文章的爬取,需要掌握selenium和requests的用法,以及如何获取请求接口。但是需要注意的是,我们在循环获取文章的时候,一定要设置一个延迟时间,否则账号很容易被封禁,返回的数据也获取不到。

  解决方案:沧州网站关键词优化【沧州网站关键词优化网站建设制作模板建站】

  沧州网站关键词优化网站建设模板建站平台

  高端网站设计沧州网站关键词优化平台值得您免费注册使用

  1. 网站模板是

  免费使用,3000+海量网站行业模板供您选择 ▶

  ▶阿拉伯数字。维护网站简单,可自由修改网站施工网站模板

  ▶3.功能丰富,产品稳定,每周持续更新,优质服务

  

  ▶4.覆盖电脑网站、手机网站、小程序、微网站等多种显示终端

  ▶5.高性价比网站施工方案,买三年送三年

  沧州网站关键词优化网站为各行各业提供免费网站模板

  ▶ 此外,沧州网站关键词优化可以定制服务,免费模板也可以自己构建,不知道代码

  

  ▶ 只要会用电脑,就能做网站,有客服专家教你

  ▶ 如何打造公司网站沧州网站关键词优化网站优势

  ▶ 无需自己编写代码

  ▶ 您可以在不了解代码的情况下轻松制作网站

  ▶ 一键免费注册,让建中网站网站

  ▶ 易于使用的网站设置步骤

  ▶ 网站四合一

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线