背景
53客服可以根据聊天内容搜索到具体访客数据,但是只能一条一条来,更不用说开放什么api了。在做数据分析中除了要统计转换外,无效分析也是必须的,然而客服反馈回来的无效往往只有电话号码。这里更难受的又来了,53下载下来的数据只有关键词、咨询页面等信息,并不包含电话。。。所以无法直接vlookup。

好在天无绝人之路,53提供html下载的数据包含聊天内容,可以通过html提取出对应留言信息的ip地址,然后和excel版本的数据整合;也可以直接在html中提取所有需要的数据。
python提取53关键信息
- 下载53的html数据后,提取所有的ip、时间放入数组;
- 然后整理出每个访客的对话内容,清除换行、空格等干扰信息;
- 逐行读取无效电话内容,如果对话内容包含,则是无效,输出对应ip 时间,到数组;
- 导出结果。

# -*- coding: utf-8 -*-
import pandas as pd
from bs4 import BeautifulSoup
path = input('输入文件名: ')
path = path + '.html'
with open(path, 'r',encoding='UTF-8') as f:
Soup = BeautifulSoup(f.read(), 'lxml')
table=Soup.find('table').find_all('tr')
i=0
j=0
ips=[]
tms=[]
dhs=[]
jg=[]
for ttr in table:
try:
tds=ttr.find_all('td',class_="td_0")
ip=tds[11].get_text().replace('\n','').replace('\r','').replace('\r\n','')
time=tds[3].get_text().replace('\n','').replace('\r','').replace('\r\n','')
ips.append(ip)
tms.append(time)
i=i+1
except:
pass
worker_msgs=Soup.find_all('tr',class_="worker_msg")
dh=open("dh.txt", 'r',encoding='UTF-8')
for line in dh.readlines():
l=list(line.split())
dhs.append(l)
for ttr in worker_msgs:
uu=ttr.get_text()
uu = uu.replace('\n','').replace('\r','').replace('\r\n','')
for dh in dhs:
if dh[0] in uu:
l=[dh[0],ips[j],tms[j]]
jg.append(l)
print (l)
j=j+1
name=['info','ip','time']
test=pd.DataFrame(columns=name,data=jg)
print(test)
test.to_csv('ip_jmk_time.csv',encoding='UTF-8')
vlookup使用方法
VLOOKUP函数是Excel中的一个纵向查找函数,功能是按列查找,最终返回该列所需查询序列所对应的值;与之对应的HLOOKUP是按行查找的。详细使用方法:
https://baike.baidu.com/item/VLOOKUP函数/
=VLOOKUP(F925,I:K,3,0)
这里通过电话号码查询,返回无效资源的ip地址,现在客服反馈的无效资源就包含了电话,无效原因,和ip地址。
无效分析
1、初级分析,通过vlookup函数利用ip将无效原因输出到53excel版本的数据中,满足基本的时间段或者是地域的无效分析。
优点:操作简单
缺点:重复操作,分析内容有限
2、加入数据模型,系统分析关键词、搜索词、单元、计划、时间、地域的无效情况。

优点:分析全面,一次解决
缺点:初次操作难度较高
[neilian ids=4102]
在power query中导入包含ip的无效资源数据ip_jmk,然后在转换数据中使用List.Contains函数,标记转化是否是无效。
= Table.AddColumn(重命名的列4, "是否无效", each if List.Contains(ip_jmk[ip],[ip]) then "是" else null)
List.Contains({1,2,3,4},3)
true
List.Contains指示列表 list 中是否包含值value,返回逻辑值。
其实也不难,不过是开始找这个函数找了好久,本人小白 翻遍Power Query M 函数才找到这个可以利用的function。