教你用Python批量查询关键词微信指数。
前期准备安装好Python开发环境及Fiddler抓包工具。前期准备安装好Python开发环境及Fiddler抓包工具。
首先打开Fiddler软件,点击Tools,在下拉菜单选择Options,然后选中HTTPS,进行HTTPS设置,如下图所示:
再进行connections设置,如下图所示:
手机配置主要是使电脑和手机处于同一个局域网,打开手机WLAN设置,开启手动代理,然后设置代理服务器主机名和代理服务器端口。代理服务器主机名为电脑IPv4地址,电脑运行cmd,输入ipconfig回车即可获取。如下图:
代理服务器端口为Fiddler软件connections设置的默认端口8888。当然这个端口写可以修改成别的,只要一致就可以,这边就直接使用默认端口了。最终配置如下图所示:
然后手机浏览器访问http://+IPv4地址+端口,如本例http://192.168.100.226:8888/,在页面中点击FiddlerRoot certificate下载证书,按照提示安装即可。这样就实现了全部配置,在手机访问页面,就可以在Fiddler中看到抓包数据了。然后手机浏览器访问http://+IPv4地址+端口,如本例http://192.168.100.226:8888/,在页面中点击FiddlerRoot certificate下载证书,按照提示安装即可。这样就实现了全部配置,在手机访问页面,就可以在Fiddler中看到抓包数据了。
打开微信指数小程序,搜索关键词,如“演唱会”,找到Host为search.weixin.qq.com的请求点击进去,取出Request Headers中的几个参数:GET,即请求连接;User-Agent用户代理及referer(如下图所示)。代码中需要修改请求头中的这三个配置。
代码示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
import requests,urllib,json,random,time
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
headers = { 'Accept-Encoding' : 'gzip' ,
'referer' : 'https://servicewechat.com/wxc026e7662ec26a3a/7/page-frame.html' , #需按实际抓包修改
'content-type' : 'application/json' ,
'User-Agent' : 'Mozilla/5.0 (Linux; Android 5.1.1; vivo V3Max A Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36 MicroMessenger/7.0.4.1420(0x27000435) Process/appbrand2 NetType/WIFI Language/zh_CN' , #需按实际抓包修改
'Host' : 'search.weixin.qq.com' ,
'Connection' : 'Keep-Alive'
}
with open ( 'weixin.txt' , 'w' ,encoding = 'utf-8' ) as f:
for line in open ( 'keywords.txt' ,encoding = 'utf-8-sig' ):
word = line.rstrip()
kw = urllib.parse.quote(word)
url = 'https://search.weixin.qq.com/cgi-bin/searchweb/wxindex/querywxindexgroup?group_query_list={}&wxindex_query_list={}&gid=&openid=ov4ns0NiA4_Cshlsxa5pT640jC5w&search_key=1560843991380393_3137533225' . format (kw,kw) #需按实际抓包修改
html = requests.get(url,headers = headers,verify = False ).text
time.sleep(random.uniform( 2 , 4 ))
datas = json.loads(html)
if datas.get( 'data' ):
try :
wxindex_str = datas[ 'data' ][ 'group_wxindex' ][ 0 ][ 'wxindex_str' ]
if wxindex_str:
index = wxindex_str.split( ',' )[ - 1 ]
else :
index = 0
except :
index = 0
else :
index = 0
data = '{}\t{}\n' . format (word,index)
print (data.rstrip())
f.write(data)
|
注意请求链接的修改,需要将取出的原始链接中groupquerylist及wxindexquerylist等号后边的字符修改成{}。关键词保存在keywords.txt文件中,一行一个。运行脚本,数据输出如下图所示,数据最终会保存到weixin.txt。
总结:
以上就是关于Python批量查询关键词微信指数的全部知识点,感谢大家的学习和对的支持。