本帖最后由 hwj888 于 2014-12-3 00:41 编辑
问题:
利用z大介绍的百度推广关键词工具采集关键字(账号全新),通过和网站实际关键词和流量的分析,显然百度推广工具已经无法满足需求了。然后对比了下百度下拉框关键词,发现竟比百度推广来的精准,所以才去采集使用,缺点是无法预估日搜索量的大小。针对不同行业,可能百度推广关键词工具出词数不一样。
用法:
将父词放在kw.txt,先采集一遍(如:刀塔传奇),把得得到的结果在次放入kw.txt,两轮下来就差不多了,然后去重,没有考虑到代码效率问题。最后得到的结果如:
代码:
- #encoding=utf-8
- import pycurl
- import StringIO
- import urllib
- import sys
- import json
- import codecs
- import time
- sysCharType = sys.getfilesystemencoding()
- def curl(url, debug=False, **kwargs):
- while 1:
- try:
- s = StringIO.StringIO()
- c = pycurl.Curl()
- c.setopt(pycurl.URL, url)
- c.setopt(pycurl.REFERER, url)
- c.setopt(pycurl.FOLLOWLOCATION, True)
- c.setopt(pycurl.TIMEOUT, 60)
- c.setopt(pycurl.ENCODING, 'gzip')
- c.setopt(pycurl.USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')
- c.setopt(pycurl.NOSIGNAL, True)
- c.setopt(pycurl.WRITEFUNCTION, s.write)
- for k, v in kwargs.iteritems():
- c.setopt(vars(pycurl)[k], v)
- c.perform()
- c.close()
- return s.getvalue()
- except:
- if debug:
- raise
- continue
- kws=open('kw.txt','r').readlines()
- for kw in kws:
- print kw+'开始'
- zm=['','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
- for i in range(len(zm)):
- for r in range(len(zm)):
- query=kw+zm[i]+zm[r]
- html = curl('http://suggestion.baidu.com/su?wd='+ urllib.quote_plus(query)+'&json=2')
- time.sleep(0.2)
- sysHtml = html.decode(sysCharType).encode('utf-8')
- kjson=sysHtml[16:]
- kdict=json.loads(kjson,encoding='UTF-8')
- klist=kdict['s']
- f1 = codecs.open('kwlist.txt', 'a',encoding='UTF-8')
- for l in range(len(klist)):
- f1.write(klist[l]+ '\n')
- print zm[i]+'结束'
- print 'ok!!!'
复制代码
ps:最后还是感谢z大,年末事情比较多,没办法立刻前往北京,等明年年初的时候,还有机会的时候,我还是想过去。。
|