发现更大的SEO世界
 找回密码
 注册
搜索
»首页»SEO培训 SEO论坛 SEO交流 帖子
发新帖
豫瞳,希望在前线蜕变    

[已通过]没有搜索功能的网站利用百度搜索结果做少量集合页

本帖最后由 豫瞳 于 2014-6-5 17:44 编辑
  1. [code]# _*_ coding:utf-8 _*_
  2. import re,urllib2,sys
  3. from bs4 import BeautifulSoup
  4. reload(sys)
  5. sys.setdefaultencoding('utf-8')

  6. print u'很慢的一个小东西,因为网站没有搜索功能,采集百度自定义搜索结果页,。制作集合页。。'
  7. print '要是遇到 搜索结果为空的,直接断掉,没有增加错误判断'
  8. print u'最终效果是 :  标题+文章描述 ,输出为 TXT格式,要想少量的 直接做成HTML 页,自个在改下吧\
  9.                  ,大量的估计这个玩意直接 碉堡了 就 '
  10. f=open(r'c:\\1\\word.txt').readlines()#关键词列表

  11. def mkdir(path):#创建文件夹
  12.     import os
  13.     path=path.strip()
  14.     path=path.rstrip("//")
  15.     isExists=os.path.exists(path)
  16.     # 判断是否存在
  17.     if not isExists:
  18.         print path+'创建成功OK'
  19.         print u'开始干活,来碗烩面慢慢等'
  20.         os.makedirs(path)
  21.         return True
  22.     else:   
  23.         print path+"'文件夹已存在'"
  24.         print u'开始干活,来碗面条慢慢等'
  25.         return False
  26. mkpath="C:\\2"# 要创建的文件夹 OR 使用的文件夹
  27. mkdir(mkpath)

  28. def get3(y):#获取最后结果
  29.         csw=open('c:\\1\\ymurl.txt','r').readlines()#读取位于 1文件夹下 YMUEL内容
  30.         aq=open('c:\\1\\description.txt','r').readlines()#读取位于 1文件夹下内容
  31.         neir=open("c:\\2\\%s.txt"%y,'w')#更改名称
  32.         link=[]
  33.         link2=[]
  34.         for i in aq:link.append(i+"</span></li>")#
  35.         for word in csw:link2.append(word)
  36.         for iu in (zip(link2,link)):
  37.             worddoc=str(iu).decode('unicode_escape').encode('raw_unicode_escape')
  38.             worddocc= worddoc.replace('\',','').replace('\'','').replace('(','').replace(')','')
  39.             print >> neir,worddocc
  40.         neir.close()
  41.         return

  42. def get2(c):#采集网站标题内容,与返回GETurl
  43.         url=urllib2.urlopen(c).geturl()#获取百度搜索结果页URL 301 网站真实URL
  44.         print url
  45.         wsoup=BeautifulSoup(urllib2.urlopen(url).read())
  46.         title=str(wsoup.title).replace('<title>','').replace('</title>','').replace('','')#最后一个为替换标题后缀为空自己添加
  47.         docm= "<li><a href=\""+url+"\"/>"+title+"</a><span id=\"decon\">"#输出形式
  48.         coon=open('c:\\1\\ymurl.txt','a')#写入1号文件下
  49.         coon.write(docm+'\n')
  50.         coon.close()
  51.         return

  52. def words(s,httpurl):#获取百度结果页百度加密URL与结果页描述
  53.         word= urllib2.quote(s.encode('utf8')).replace('%0A','')
  54.         baiduurl="http://www.baidu.com/s?ct=2097152&tn=bds&ie=utf-8&si=%s&wd=%s&rn=30&cl=3"%(httpurl,word)
  55.         soup=BeautifulSoup(urllib2.urlopen(baiduurl).read())
  56.         cone= soup.find('div',{'id':'content_left'})
  57.         listurl=re.findall('http://www.baidu.com/link.*?"',str(cone))
  58.         doc=cone.findAll('div',{'class':'c-abstract'})
  59.         for i in listurl:
  60.                 while listurl.count(i)>1:#在原位去重
  61.                            del listurl[listurl.index(i)]#在原位去重
  62.                 get2(i.replace('"',''))#传递数值
  63.         for e in doc:#获得描述并写入文件  不知道怎么直接和上面的FOR 一起传递,用的笨方法
  64.                 description=str(e).replace('<div class="c-abstract">','').replace('<em>','').replace('</em>','').replace('</div>','')               
  65.                 with open('c:\\1\\description.txt','a') as fr:fr.write(description+'\n')
  66.         return

  67. httpurl="www.xxxxxxxx.xxx"#更改
  68. # httpurl=raw_input()
  69. for x,k in enumerate(f):
  70.         with open('c:\\1\\description.txt','w') as fr:fr.write("")
  71.         with open('c:\\1\\ymurl.txt','w') as cs:cs.write("")
  72.         s=k.decode('gbk').encode('utf-8')
  73.         words(s,httpurl)
  74.         get3(x+1)
复制代码
发表于 2014-5-28 15:41:45
回复 收藏
fred,请到个人资料页面设置个人签名    [ 版主 ]

这种方法虽然相关性高,但是前提是你的网站必须有足够多的收录。不然就真的是只能做少量的聚合页了。
发表于 2014-5-28 15:45:44
回复 收藏
豫瞳,希望在前线蜕变    

fred 发表于 2014-5-28 15:45
这种方法虽然相关性高,但是前提是你的网站必须有足够多的收录。不然就真的是只能做少量的聚合页了。 ...


没站内搜索 只能这样玩了
 楼主| 发表于 2014-5-28 16:01:13
回复 收藏
ZERO,SEO执着爱好者    

豫瞳 发表于 2014-5-28 08:01
没站内搜索 只能这样玩了

百度站长平台提供站内搜索功能,用那个或许省事些。
发表于 2014-5-28 16:08:08
回复 收藏
fred,请到个人资料页面设置个人签名    [ 版主 ]

豫瞳 发表于 2014-5-28 16:01
没站内搜索 只能这样玩了

如果自已玩sphinx可能会比较会很复杂,如果公司有技术底子的话,可以考虑开发自已的站内搜索。
发表于 2014-5-28 16:27:30
回复 收藏
fred,请到个人资料页面设置个人签名    [ 版主 ]

ZERO 发表于 2014-5-28 16:08
百度站长平台提供站内搜索功能,用那个或许省事些。

貌似站长平台提供的站内搜索也是要网页被收录后,才能查询到。
发表于 2014-5-28 16:31:04
回复 收藏
豫瞳,希望在前线蜕变    

ZERO 发表于 2014-5-28 16:08
百度站长平台提供站内搜索功能,用那个或许省事些。

用的自定义搜索
 楼主| 发表于 2014-5-28 16:42:31
回复 收藏
xfxdtt,不变初心。。    

要是做成PHP版,会有不少人用的到的。。O(∩_∩)O哈!
发表于 2014-5-28 16:51:46
回复 收藏
豫瞳,希望在前线蜕变    

xfxdtt 发表于 2014-5-28 16:51
要是做成PHP版,会有不少人用的到的。。O(∩_∩)O哈!

期待大神。。。。。。。。
 楼主| 发表于 2014-5-28 17:07:02
回复 收藏
圆念,请到个人资料页面设置个人签名    

我是小学生一枚,看了大神们的回复,期待大神做成PHP版的
发表于 2014-7-3 10:00:41
回复 收藏
快速回复 返回顶部 返回列表