如图:
其实就是多了一个判断而已 ( 但是我因此需要复制2段一样的代码 )
具体代码如下:
def get_all_ranks(df,xm):
if xm == "所有":
for i in df.index:
#如果项目登录所有(就不做判断了,直接全部都查询!!!!)
url = df["域名"][i]
kw = df["关键词"][i]
#查询一下收录
df["收录"][i] = Baidu().baidu_sites(url)
#如果没有收录
if df['收录'][i] != 0:
#就不查排名了
df["排名"][i]=df["手机排名"][i] = -1
#否则就更新一下排名
else:
df["排名"][i] = Baidu().rank(kw,url)[0]
df["手机排名"][i]=Baidu().rank(kw,url,zd="m")[0]
print ("%s,关键词:%s,pc排名:%s,手机排名%s" % (url,kw,df["排名"][i],df["手机排名"][i]))
return df
else:
for i in df.index:
if df["项目"][i] == xm:
url = df["域名"][i]
kw = df["关键词"][i]
#查询一下收录
df["收录"][i] = Baidu().baidu_sites(url)
#如果没有收录
if df['收录'][i] != 0:
#就不查排名了
df["排名"][i]=df["手机排名"][i] = -1
#否则就更新一下排名
else:
df["排名"][i] = Baidu().rank(kw,url)[0]
df["手机排名"][i]=Baidu().rank(kw,url,zd="m")[0]
print ("%s,关键词:%s,pc排名:%s,手机排名%s" % (url,kw,df["排名"][i],df["手机排名"][i]))
return df
有高手会改写得优雅一点吗? 好像有个装饰器的东西但是不太会用~
大家讲道理2017-04-18 10:26:07
xm的值應該在循環中判斷,並且xm為所有時並不是特殊到值得單獨處理。
for i in df.index:
if xm == '所有' or xm == i:
#do something