背景

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

留言信息反查53KF详细数据,python与sem-开水网络

好在天无绝人之路,53提供html下载的数据包含聊天内容,可以通过html提取出对应留言信息的ip地址,然后和excel版本的数据整合;也可以直接在html中提取所有需要的数据。

python提取53关键信息

  1. 下载53的html数据后,提取所有的ip、时间放入数组;
  2. 然后整理出每个访客的对话内容,清除换行、空格等干扰信息;
  3. 逐行读取无效电话内容,如果对话内容包含,则是无效,输出对应ip 时间,到数组;
  4. 导出结果。

留言信息反查53KF详细数据,python与sem-开水网络

# -*- 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、加入数据模型,系统分析关键词、搜索词、单元、计划、时间、地域的无效情况。

留言信息反查53KF详细数据,python与sem-开水网络

优点:分析全面,一次解决

缺点:初次操作难度较高

EXCEL竞价自动分析,Power Pivot数据建模分析

万物复苏的季节,各个行业也都加大广告投放,苦了我们广大sem优化人员。随着广告投放力度的增强,竞价人员面临的问 […]

在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。