SEO高手是如何分析竞争对手的一文中的方法,除了可以用于分析竞争对手,还可以每天监控竞争对手的数据动向。
如果想提取出主要竞争对手的排名情况,即排在首页的关键词,对应的着陆页和排名,并将结果保存在Excel文件的不同sheet中,该怎么做呢?下面将分别使用pandas,openpyxl两种方式实现。
pandas代码示例
import pandas as pd
domains = {'黄河票务':'huanghepiao','大河票务':'dahepiao','摩天轮票务':'moretickets'} #配置主要竞争对手
df = pd.read_csv('new_ranks.csv',dtype = {'rank' : int},encoding='gbk',error_bad_lines=False) #读取爬虫生成的csv文件
df['domain'] = df['domain'].fillna('not.html')
writer = pd.ExcelWriter('主要域名排名数据.xlsx')
for sheetname,domain in domains.items():
rankdata = df[df['domain'].str.contains(domain)]
rankdata.to_excel(writer,sheet_name = sheetname,encoding='utf-8',index=None)
writer.save()
writer.close()
输出结果如图:
openpyxl代码示例
import csv
from openpyxl import Workbook
domains = {'黄河票务':'huanghepiao','大河票务':'dahepiao','摩天轮票务':'moretickets'} #配置主要竞争对手
wb = Workbook()
wb.active
count = 0
for sheetname, domain in domains.items():
sheet = wb.create_sheet(sheetname, index=count)
reader = csv.reader(open('new_ranks.csv')) #读取爬虫生成的csv文件
for row in reader:
if row and domain in row[1]:
row[3] = int(row[3])
sheet.append(row)
count += 1
wb.save('主要对手排名数据.xlsx')
输出结果如图:
结果发现生成的文件,pandas方式比openpyxl方式要大得多。这是因为使用pandas保存成Excel文件会将url加上超链接,导致数据更大。如果想去掉pandas保存文件中的超链接,可使用如下方式:
writer = pd.ExcelWriter('主要域名排名数据.xlsx')
改成:
writer = pd.ExcelWriter('主要域名排名数据.xlsx',options={'strings_to_urls': False}) #禁止保存成超链接
即可。
推荐阅读:
再谈Python批量查询百度指数
加强版Python采集百度凤巢关键词规划师
Python批量查询关键词搜狗指数
Python批量查询关键词微信指数