发现更大的SEO世界
 找回密码
 注册
搜索
»首页»SEO培训 SEO论坛 SEO交流 帖子
发新帖
小小,优雅的拍砖    

简易查百度前十,用于发现竞争对手

本帖最后由 小小 于 2014-6-10 13:15 编辑

这是一个简易查询百度前十的源码,可以批量查询,汇总出各个网址总数,用于发现潜在的竞争对手。
使用方法,自备自己的词库。
缺点:汇总出来的数据未有排序(能力不足),未去保存在文件中(可以自我完成。),只能统计前十,代码可能臃肿

     自备词库
#encoding:utf-8
import urllib2
import re
import time
import random

def getInfo(content):   #提取初步信息
    urls_pat=re.compile(r'<span class="g">(.*?)</span>|<span class="c-showurl">(.*?)</span>|<span id="ala_img_desc" .*?>(.*?)&nbsp;-&nbsp;<a style=".*?</a></span>')
    siteUrls=re.findall(urls_pat,content)
    info=''
    for i in siteUrls:
        for j in i:         
            info=info+j
        getUrls(info)
        info=''#每次结束情况info信息

def getUrls(info):#提取Urls
    strip_tag_pat=re.compile(r'<.*?>')
    strip_tag_pat1=re.compile(r' ')
    i0=re.sub(strip_tag_pat,'',info)
    i0=re.sub(strip_tag_pat1,'',i0)
    i0=i0.strip()
    i1=i0.split('/')
    siteUrl=''.join(i1[0])
    print siteUrl
    huiZong(siteUrl)
   
def huiZong(siteUrl):#统计每个网址出现的次数
    if(arrUrl.has_key(siteUrl)):
        arrUrl[siteUrl]+=1
    else:
        arrUrl.setdefault(siteUrl,1)
   
        
        
def readUrl(gjc):#读取网页
    url = 'http://www.baidu.com/s?wd=' + gjc
    content = urllib2.urlopen(url).read()
    getInfo(content)


f=open("gjc.txt","r")#词库,一行一个
lines = f.readlines()
arrUrl ={}
for gjc in lines:
    readUrl(gjc)
    print "---------------------"
    time.sleep(random.randint(1,3))#暂停1-3s 防止出现验证码
f.close()
for key in arrUrl:
    print key+"-->"+str(arrUrl[key])

    结果为
简易排名.rar (974 Bytes, 下载次数: 1351)

发表于 2014-6-10 13:14:18 |只看大图
回复 收藏
xfxdtt,不变初心。。    

url = 'http://www.baidu.com/s?wd=' + gjc
改成这个
url = 'http://www.baidu.com/s?rn=20&wd=' + gjc

rn=20是前20个结果
可以写成前一百,排序这些可以拿到后在表格里做的
发表于 2014-6-10 13:26:58
回复 收藏
姜姜,个人比较闲,学习python中    

确实有点臃肿,可以用bs4解析和提取自然排名内容,写入迭代器之后可取其中排名,快照,标题描述数据统计并直接写入csv文件。另外每个函数没有return呢
发表于 2014-6-10 13:36:32
回复 收藏
小小,优雅的拍砖    

xfxdtt 发表于 2014-6-10 13:26
url = 'http://www.baidu.com/s?wd=' + gjc
改成这个
url = 'http://www.baidu.com/s?rn=20&wd=' + gjc

学到一招
 楼主| 发表于 2014-6-10 14:05:54
回复 收藏
小小,优雅的拍砖    

姜姜 发表于 2014-6-10 13:36
确实有点臃肿,可以用bs4解析和提取自然排名内容,写入迭代器之后可取其中排名,快照,标题描述数据统计并 ...

额    还没学到  继续深入学习
 楼主| 发表于 2014-6-10 14:06:22
回复 收藏
xfxdtt,不变初心。。    


哈哈。。互相学习咯
发表于 2014-6-10 14:15:25
回复 收藏
行书,请到个人资料页面设置个人签名    

rn=20
这个如果在浏览器中的话 应该是&rn=*  (前*的网址在同一个页面显示)
发表于 2014-6-10 14:30:11
回复 收藏
小小,优雅的拍砖    

行书 发表于 2014-6-10 14:30
rn=20
这个如果在浏览器中的话 应该是&rn=*  (前*的网址在同一个页面显示)

已经学到了  感谢分享
 楼主| 发表于 2014-6-10 16:53:02
回复 收藏
行书,请到个人资料页面设置个人签名    

小小 发表于 2014-6-10 16:53
已经学到了  感谢分享

不用 我也是其他地方看到的
发表于 2014-6-10 16:54:40
回复 收藏
快速回复 返回顶部 返回列表