移动端菜单

SEO利用python获取百度下拉框关键词实现方法

大唐营销老胡 2019-09-02 09:57:19 python基础教程 阅读

导读:做搜索引擎优化需要各种各样的数据,其中关键词库是最重要的基础数据。当然搜索引擎优化获取关键词的方法很多,有付费的也有免费的方法。

做SEO需要各种各样的数据,其中关键词库是最重要的基础数据。当然SEO获取关键词的方法很多,有付费的也有免费的方法。大唐营销老胡早年曾经使用python编写了一个获取百度下拉框关键词脚本,一直是为自己使用留用。今天大唐营销老胡把这些分享出来,提供给大家参考。

SEO利用python编程获取百度下拉关键词
SEO利用python编程获取百度下拉关键词


使用Python获取百度下拉关键词实现方法

#coding:utf8
# 【作者:大唐营销老胡】
# 【QQ/微信:2371482842】
# 【个人博客:http://www.datangyingxiao.com/】
import requests,re,MySQLdb,socket,time

def conn():
    #-----创建数据库链接----
    while 1:
        try:
            conn=MySQLdb.connect(host="127.0.0.1",user="root",passwd="root",db="keyword",charset="utf8")   #链接数据库hu
            cursor=conn.cursor()        #创建一个光标
            cursor.execute("SET NAMES utf8")  #设置编码,防止插入数据库乱码
            socket.setdefaulttimeout(30)     #建立30秒的超时报错处理
            print "---------数据库链接成功------"
            return cursor
        except:
            print "-------数据库链接失败------"
            time.sleep()
cursor=conn()

def get_html(url):
    #获取html
    headers={
        "Host":"sp0.baidu.com",
        "User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:47.0) Gecko/20100101 Firefox/47.0",
        "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    }
    try:
        r=requests.get(url,headers=headers)
        html=r.text
        return html
    except:
        print "html获取失败"
        pass
def get_content(url):
    print url
    html=get_html(url)
    # print html
    try:
        data_word=re.findall('"(.*?)"',html)
        if data_word:
            for keyword in data_word:
                keyword=keyword.encode('utf8')
                # print keyword,type(keyword)
                #--插入数据库---
                try:
                    cursor.execute("insert into data_keyword(keyword) VALUES ('%s')"%keyword)
                    print "【%s】--------------------------------------------------------------插入成功"%keyword
                except:
                    print "【%s】-------------------存在"%keyword
                    pass
    except:
        print "关键词未获取到"
        pass

def get_word():
    #--从数据库中读取url--
    try:
        # cursor.execute("SELECT keyword FROM data_keyword WHERE zt=0 order by id asc LIMIT 10000")
        cursor.execute("SELECT keyword FROM data_keyword WHERE zt=0 order by id asc LIMIT 10000")
        words=cursor.fetchall()
        print "-----------有(%s)没爬"%len(words)
        for word in words:
            word=word[0].encode('utf8')
            url="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=%s"%word
            get_html(url)
            get_content(url)
            cursor.execute("UPDATE data_keyword SET zt=1 WHERE keyword='%s'"%word)
            print "----zt=1更新成功"
    except:
        print "url数据库中获取失败"
        pass

if __name__=="__main__":
    get_word()



如果大家有看不懂的地方,欢迎联系大唐营销老胡交流。


相关内容推荐:
python开发获取爱站网竞争对手排名关键词工具
python3 requests库安装pip方法提示 SyntaxError:invalid syntax
通知:python与SEO频道正式上线

文章作者: 大唐营销老胡
文章地址:http://www.datangyingxiao.com/python/jiaocheng/114.html
版权所有:转载时必须以链接形式注明作者和原始出处及本声明。

大唐营销老胡 大唐营销老胡微信二维码
栏目导航
最新文章
热门文章
热门标签