在运行脚本之前,请确定你是否按照了MySQLdb库,安装方法可以去百度一下。

下面是我的代码。

#!/usr/local/bin/python

#coding:utf8

# 2015-6-26 DaoXin

import pycurl, json, MySQLdb

import StringIO

import urllib, urllib2

from random import choice

import 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.seoqx.com/post/341

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, 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

continue

command = 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

中,一行一个词,然后将本文代码随便保存成一个xxxx.py 和sourceword.txt

放在同一个目录下。

2、交互模式下,进入这两个文件所在目录,运行脚本xxx.py(一般是输入python

xxx.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中

重复词是会自动过滤掉的。不过反正都无所谓,后期处理的时候大家总能找到办法的。

如果使用有什么问题,欢迎交流。

python有多少关键字_Python挖词脚本,挖出几十万关键词不是梦带搜索量相关推荐

  1. python有多少关键字_Python中有几个关键字

    Python中关键词有多少个?Python中关键词目前有31个,可以利用Python的内置的keyword模块进行输出查看. keyword模块 Help on module keyword: NAM ...

  2. python有多少关键字_Python中有声明关键字吗?

    我真的很喜欢Van Gale所提供的理解,但它并不能真正回答这样一个问题:"你怎么知道这个语句是创建一个新变量还是设置一个现有变量?" 如果您想知道在查看代码时如何识别它,只需查找 ...

  3. wolfssl 何如 https post_干货:手把手教你优化关键词|亚马逊|流量|搜索量|长尾词|https...

    这次要跟大家分享的是关键词优化思路,仅供参考,如果有大佬还有更好的优化思路,可以留言一起交流. 如果产品本身的市场就很小的话,流量也小,那它做起来确实比较难,你要看产品市场容量有多大.受众小的产品就找 ...

  4. python系统关键字_python基础之常用关键字总结

    原博文 2018-10-23 22:30 − ## 前言 到python3.6为止,python内置的关键字有33个,比python2.7的版本多了2个.下面总结一下python3的关键字的使用. # ...

  5. python系统关键字_Python基础教程 - global关键字及全局变量的用法

    Python中global关键字主要作用是声明变量的作用域. 在C语言中,由于变量一定是先声明,后使用,所以我们可以清楚的知道,现在使用的变量是全局还是局部,比如: int a = 5; void t ...

  6. python3.6.6有多少关键字_python中的关键字---6(os/sys模块)

    import os 文件操作类模块 os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归 ...

  7. python监控进程状态_python监控进程脚本

    本文实例为大家分享了python监控进程脚本的具体代码,供大家参考,具体内容如下 原理: 监控一个指定进程,每隔5秒钟获取其CPU.内存使用量超过60%即kill掉该进程,获取其句柄数,超过300也k ...

  8. python异常处理关键字_Python中的异常处理

    异常 在程序开发中,如果对于某些代码的执行不确定(程序的语法完全正确),并非程序本身的错误,是与外界交互时,外界输入不规范造成的.以下是处理异常的方法: 一.单个异常:# 只有一个异常产生 try: ...

  9. python自动化发送邮件_Python发送邮件自动化脚本

    Python发送邮件自动化脚本 import smtplib # 发送字符串的邮件 from email.mime.text import MIMEText # 处理多种形态的邮件主体我们需要 MIM ...

最新文章

  1. shell 去掉字符串中的字母
  2. 淘商们用数据精细化分析客户群体
  3. 【网络安全】红蓝攻防:shellcode的分析
  4. ASP.NET提取多层嵌套json数据的方法
  5. 关于level_idc和Profile_IDC的解释
  6. oracle用户名密码过期引起的网站后台无法登录
  7. excel实战应用案例100讲(十三)-使用Python 对 Excel文件进行批量操作
  8. 有关Accordion组件的研究——Silverlight学习笔记[27]
  9. 又一任务被Transformer攻陷!NVIDIA开源HORST,用Transformer解决早期动作识别和动作预期任务...
  10. 流程企业(钢铁企业)的制造执行系统
  11. kafka集群 kubernetes_为什么Kubernetes如此受欢迎?
  12. spring单元测试无法注入bean_Spring容器启动@Value属性无法注入?
  13. [js开源组件开发]js文本框计数组件
  14. 【优化算法】寄生-捕食优化算法(PPA)【含Matlab源码 1445期】
  15. XMPP即时通讯协议使用(六)——开发Openfire聊天记录插件
  16. 西安电子科技大学超级计算机,西安电子科技大学超级计算机投入使用
  17. UPC-5094 - Faulty Robot - 搜索
  18. 一首特别适合冥想的音乐
  19. 阿里云王志坤:强劲可靠、无处不在的云,为创新保驾护航
  20. “你不认识我,那你干嘛插我的队?”

热门文章

  1. C++(四)——类和对象(下)
  2. 初等数论--二次剩余与二次同余方程--既约剩余系中二次剩余的个数
  3. 设计模式--享元(Flyweight)模式
  4. PKCS#11 in OP-TEE
  5. OSI七层网络模型TCP&UDP
  6. Python的常用模块
  7. CTF题目中遇到的PHP考点总结(一)
  8. 006 Android之Activity
  9. 设计模式C++实现(13)——中介者模式
  10. 将RGB格式的颜色值转换为十六进制