分享:Python 微信公众号文章爬取的示例代码

优采云 发布时间: 2020-12-31 09:14

  分享:Python 微信公众号文章爬取的示例代码

  Python微信官方帐户文章抓取的示例代码

  更新时间:2020年11月30日08:31:45作者:少年白

  此文章主要介绍了Python微信公共帐户文章抓取的示例代码。本文将详细介绍示例代码,该示例代码对于每个人的学习或工作都具有一定的参考学习价值。有需要的朋友让我们与编辑一起学习。

  һ.˼·

  我们通过微信公众平台网络版图形消息中的超链接获得所需的界面

  

  

  从界面中,我们可以获得相应的微信公众号和所有相应的微信公众号文章。

  二.界面分析

  访问微信官方帐户:

  参数:

  action = search_biz

  开始= 0

  count = 5

  query =官方帐户名

  token =每个帐户对应的令牌值

  lang = zh_CN

  f = json

  ajax = 1

  请求方法:

  获取

  因此在此界面中,我们只需要获取令牌,查询就是您需要搜索的官方帐户,并且可以在登录后通过Web链接获取令牌。

  

  获取与官方帐户对应的文章界面:

  参数:

  action = list_ex

  开始= 0

  count = 5

  fakeid = MjM5NDAwMTA2MA ==

  type = 9

  query =

  token = 557131216

  lang = zh_CN

  f = json

  ajax = 1

  请求方法:

  获取

  我们需要在该接口中获取的值是上一步中的令牌和伪标识,并且可以在第一个接口中获取该伪标识。这样我们就可以获得微信公众号文章的数据。

  

  三.实施

  第一步:

  首先,我们需要模拟通过硒的登录,然后获取cookie和相应的令牌

  

def weChat_login(user, password):

post = {}

browser = webdriver.Chrome()

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

sleep(3)

browser.delete_all_cookies()

sleep(2)

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

browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()

sleep(2)

# 模拟用户点击

input_user = browser.find_element_by_xpath("//input[@name='account']")

input_user.send_keys(user)

input_password = browser.find_element_by_xpath("//input[@name='password']")

input_password.send_keys(password)

sleep(2)

# 点击登录

browser.find_element_by_xpath("//a[@class='btn_login']").click()

sleep(2)

# 微信登录验证

print('请扫描二维码')

sleep(20)

# 刷新当前网页

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

sleep(5)

# 获取当前网页链接

url = browser.current_url

# 获取当前cookie

cookies = browser.get_cookies()

for item in cookies:

post[item['name']] = item['value']

# 转换为字符串

cookie_str = json.dumps(post)

# 存储到本地

with open('cookie.txt', 'w+', encoding='utf-8') as f:

f.write(cookie_str)

print('cookie保存到本地成功')

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

paramList = url.strip().split('?')[1].split('&')

# 定义一个字典存储数据

paramdict = {}

for item in paramList:

paramdict[item.split('=')[0]] = item.split('=')[1]

# 返回token

return paramdict['token']

  定义一个登录方法,其中的参数是登录帐户和密码,然后定义一个字典来存储cookie值。通过模拟用户,输入相应的帐户密码,然后单击“登录”,然后将出现一个扫描验证码,只需使用登录微信进行扫描即可。

  刷新当前网页后,获取当前的cookie和令牌,然后返回。

  第2步:

  1.请求获得相应的官方帐户界面,并获取我们需要的伪造物

  

url = 'https://mp.weixin.qq.com'

headers = {

'HOST': 'mp.weixin.qq.com',

'User-Agent': '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'

}

with open('cookie.txt', 'r', encoding='utf-8') as f:

cookie = f.read()

cookies = json.loads(cookie)

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

search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'

params = {

'action': 'search_biz',

'begin': '0',

'count': '5',

'query': '搜索的公众号名称',

'token': token,

'lang': 'zh_CN',

'f': 'json',

'ajax': '1'

}

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

  传入我们获得的令牌和cookie,然后通过request.get请求获取返回的微信官方帐户的json数据

  

lists = search_resp.json().get('list')[0]

  可以通过上面的代码获取相应的官方帐户数据

  

fakeid = lists.get('fakeid')

  可以通过上面的代码获得相应的伪造物

  2.请求微信公众号文章界面,并获取了我们需要的文章数据

  

appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'

params_data = {

'action': 'list_ex',

'begin': '0',

'count': '5',

'fakeid': fakeid,

'type': '9',

'query': '',

'token': token,

'lang': 'zh_CN',

'f': 'json',

'ajax': '1'

}

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

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

  我们已经意识到抓取微信官方帐户文章。

  四.摘要

  通过抓取微信公众号文章,您需要掌握硒的使用和请求,以及如何获取请求接口。但是需要注意的是,当我们循环获得文章时,必须设置延迟时间,否则帐户将很容易被阻塞,并且无法获得返回的数据。

  这是本文文章的结尾,有关Python微信公共帐户文章抓取的示例代码。有关Python微信公众号文章爬网内容的更多相关信息,请搜索以前的脚本文章或继续浏览相关的文章,希望您将来会支持脚本屋!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线