超滤膜清水器为全家供给安然安康直饮水

焦点 547℃

Python挖词脚本 ,挖词挖出万关挖出几十万关头词不是脚本梦 带搜刮量

前段时分在@编制的博客上看到一个数据接口 ,貌似是头词百度商情的关头词数据。
编制博客顶用的不梦是ssh ,几行代码就弄定了挖词,刮量可是挖词挖出万关我试了一下,挖出来有一些混乱也有一些几回。脚本是头词以就用python做了一个版本。拿出来分享一下 。不梦
编制的刮量原文 :http://搜刮引擎优化fangfa.com/shell/百度keyword-shangqing.html

在运转脚本之前,请断定你可否屈就了MySQLdb库 ,挖词挖出万关拆卸编制可以往百度一下。脚本

上面是头词我的代码。

 

#!/usr/local/bin/python#coding:utf8# 2015-6-26 DaoXinimport pycurl,不梦 json, MySQLdbimport StringIOimport urllib, urllib2from random import choiceimport sys reload(sys)sys.setdefaultencoding('utf8')#useragent 列表
,大年夜师可以自行往群集	
。刮量不内涵本例中似乎不须要这个AGENTS = [            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36",            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.27 (KHTML, like Gecko) Chrome/12.0.712.0 Safari/534.27",            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.24 Safari/535.1",            "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2",            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7",            "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b4pre) Gecko/20100815 Minefield/4.0b4pre",            "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5",            "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.17) Gecko/20110123 (like Firefox/3.x) SeaMonkey/2.0.12",            "Mozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1",            "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; zh-CN) AppleWebKit/532.8 (KHTML, like Gecko) Chrome/4.0.302.2 Safari/532.8",            "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; zh-CN) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.464.0 Safari/534.3",            "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_5; zh-CN) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.15 Safari/534.13",            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1",            "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8",            "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/312.5 (KHTML, like Gecko) Safari/312.3",            "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3",            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1",            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b6pre) Gecko/20100907 Firefox/4.0b6pre Camino/2.2a1pre",            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.4 (KHTML like Gecko) Chrome/22.0.1229.79 Safari/537.4",            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1",            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20120813 Firefox/16.0",            "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; zh-CN) AppleWebKit/528.16 (KHTML, like Gecko, Safari/528.16) OmniWeb/v622.8.0.112941",            "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; zh-CN) AppleWebKit/528.16 (KHTML, like Gecko, Safari/528.16) OmniWeb/v622.8.0",]UserAgent = choice(AGENTS)#假定需求把挖出来的关头词保管到数据库,需求设置设备放置数据库相干信息class ConnDb():    global host, user, passwd, db    host = '111.111.111.111' #数据库IP    user = 'python' #数据库用户名    passwd = 'pass' #数据库暗码    db = 'dbnamelllllll' # 数据库名    def connDb(self):        global cur        conn = MySQLdb.connect(host=host, user=user, passwd=passwd, db=db, port=3306, charset = 'utf8')        cur = conn.cursor()        return cur# 这个curl编制是从zero那儿何处扒过往的
。http://www.搜刮引擎优化qx.com/post/341def 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, UserAgent)            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            continuecommand = int(raw_input("请选择导出编制;1:导出为txt,2:导进道数据库: "))if command == 1:	FileWrite = open("output.txt", 'w')	for line in open('sourceword.txt'):		kw = str(line)		jsons = curl('http://honeyimg.bdimg.com/recomword/recomWordCache_findRecomWord.htm?area_id=&word=' + urllib.quote_plus(kw))		d = json.loads(jsons)		try:			dlist = d['data']['list']			for item in dlist:				indexs = item['total']				keywords = item['word'].encode('utf-8')				outstr = str(indexs) + ',' + str(keywords) + 'n'				FileWrite.write(outstr)		except TypeError, e:			print 'TypeError, Pass', e			continue	print 'done to txt'elif command == 2:	conndb = ConnDb()	conndb.connDb()	for line in open('sourceword.txt'):		kw = str(line)		jsons = curl('http://honeyimg.bdimg.com/recomword/recomWordCache_findRecomWord.htm?area_id=&word=' + urllib.quote_plus(kw))		d = json.loads(jsons)		try:			dlist = d['data']['list']			for item in dlist:				indexs = item['total']				#keywords = unicode(item['word'], 'utf-8')				keywords = item['word'].encode("utf-8")				sql = "insert into shangqing_keyword (id, total, keyword) values (null, '%s', '%s')"				try:					cur.execute(sql % (indexs, keywords))				except MySQLdb.Error, e:					print 'MySql error', e					continue		except TypeError, e:			print 'TypeError, Pass' , e			continue	print 'done to mysql'else:	print '只需两种导出编制,请输进1或2'

 

独霸编制 :

1 、将你的词根放到sourceword.txt 中 ,一行一个词 ,然后将本文代码尽情保管成一个***x.py  和sourceword.txt 放在不合个目次下 。
2、交互编制下  ,进进这两个文件地址目次 ,运转脚本***.py(但凡为输进python ***.py便可)
3 、会有提示选择导出编制  ,1为导出txt文件,2为导进到mysql中 。以下图


图中的typeerror请忽视。

假定需求导进到mysql中,请设置设备放置mysql的相干信息,在代码中有诠释 。
不过起首需求在你的数据库中成立一个表,语句以下  :

 

CREATE TABLE `shangqing_keyword` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `keyword` varchar(200) DEFAULT NULL,  `total` int(11) DEFAULT NULL,  PRIMARY KEY (`id`),  UNIQUE KEY `keyword` (`keyword`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

4、等待完成。
小我认为导进到mysql更好治理 ,txt斗劲好措置一些 。

我的sourceword中有6000个词,挖出来差不多30多万我就停止了。理应能挖出来更多。
终局截图 :

这个是导出为txt格式标容貌。

导进到mysql是多么的 。仍是mysql用起来顺手一些 。小我欢欣乐乐喜悦爱好 。

寄看:导出txt格式是存在几回词的,因为我不晓得若何往过滤  。可是导进到mysql中 几回词是会主动过滤损掉落踪落的 。不过回正都无所谓,后期措置的时辰大年夜师总能找到编制的。

假定独霸有甚么问题,迎接交换 。