【数据分析】python分析百度搜索关键词的频率

涉及知识点

1、抓取数据

2、分页爬虫

规律分析

1、抓取数据,发现每一项都是data-tools标签

2、分页分析

代码

import requests
from bs4 import BeautifulSoup
import re
import json
import jieba
#获取html页面信息
def getKeywordResult(keyword, pagenum):
    url = 'http://www.baidu.com/s?wd=' + keyword + '&pn=' + pagenum + '0'
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = 'utf-8'
        return r.text
    except:
        return ""
#解析并抽取数据
def parserLinks(html):
    soup = BeautifulSoup(html, "html.parser")
    links = []
    for div in soup.find_all('div', {'data-tools':re.compile('title')}):
        data = div.attrs['data-tools']
        d = json.loads(data)
        links.append(d['title'])
        words_all.append(d['title'])
    return links, words_all
#词频统计
def words_ratio(words_all):
    words = []
    for i in words_all:
        tmp = jieba.lcut(i)
        for tmp_word in tmp:
            words.append(tmp_word)
    counts = {}
    for word in words:
        if len(word) == 1:
            continue
        else:
            counts[word] = counts.get(word, 0) + 1
    items = list(counts.items())
    items.sort(key=lambda x: x[1], reverse=True)
    for i in range(30):
        word, count = items[i]
        print("{0:<10}{1:>5} 占比:{2}".format(word, count, int(count)/len(words)))
def main():
    for pagenum in range(0, 50):
        html = getKeywordResult('老张', str(pagenum))#输入搜索关键词和页数
        ls, words_all = parserLinks(html)
        count = pagenum + 1
        for i in ls:
            print("[{:^3}]{}".format(count, i))
        ls = []
    words_ratio(words_all)
if __name__ == '__main__':
    words_all = []
    main()

结果

后续的思考

代码都很简单,高手要懂得如何去扩展。现在虽然数据都爬下来了,但是非常凌乱,仍然需要人工去分析比对。这样的数据我称之为裸数据,理想的数据是可读且有关联的,我称之为金子数据。

这个转换分析的过程涉及到两个问题:

1、如何实现可读?

可以用字典里面的del[]方法删去坏的数据

2、如何实现数据的关联性?

先将裸数据进行二次分析,将相关的字项放到一块,然后再做运行

原文地址:http://blog.51cto.com/12814931/2126612

时间: 2024-10-07 17:50:11

【数据分析】python分析百度搜索关键词的频率的相关文章

百度搜索关键词上线大家快点踊跃使用吧

近日,百度站长平台对百度搜索关键词工具进行了全面的升级,统计数据越来越精细,指标描述也越来越亲民.对于广大SEOer来说,长期总结观察这些百度数据,对于更好的了解其站点优化情况,对于制定其未来的关键词优化方案都大有裨益.可以说,新的数据数量级别和指标描述的改变,也标志着百度正逐步将加快其完善算法的步伐,大家有望在未来享受更公正的优化排名规则. 这次,百度主要通过热门关键词和热门页面来描述网站的受欢迎状况.注意,所谓的热门关键词和热门页面,是针对您自己的网站而言的,不具有绝对的统一性.您网站通过哪

Python实验:百度搜索关键字自动打开相关URL

#! python # coding: utf-8 # python实现百度搜索关键字,并依次用浏览器打开前五个搜索结果 ## ##Beautiful Soup 是一个模块,用于从HTML 页面中提取信息(用于这个目的时,它比正则表达式好很多).BeautifulSoup 模块的名称是bs4(表示Beautiful Soup,第4 版).要安装它,需要在命令行中运行pip install beautifulsoup4 import bs4, sys, webbrowser, requests #

http协议请求实战——get请求示例之抓取百度搜索关键词对应网页信息

1通过分析搜索关键词对应的网址发现字段名和内容均在网址中网址可简化为www.baidu.com/s?wd=搜索的关键词 根据分析出的规律可通过构造get请求用爬虫实现在百度上自动查询某个关键词 代码如下: import urllib.request 导入urllib.requestkeywd = '高同同' 指定关键词keywd_cod = urllib.request.quote(keywd)将关键词进行编码url = 'https://www.baidu.com/s?wd='输入网址url_

我的第一个自动化脚本(python)----百度搜索

这是一个纯小白胡说八道的个人总结,如果有人看到什么不对的,欢迎批评指正 博客园开通了很久,一直不知道该怎么去写,总觉得自己要写的东西都是别人已经写过的,我再去写就是在重复之前人所说,今天去面试和面试姐姐聊到这个问题的时候,我才真正的意识到写博客的意义,其实博客只要是写出来对自己有帮助,管其他人怎么看呢,就算百度搜索出来好多一样的那又怎么样呢,博客是写给自己的,如果能因此帮助别人少走一些弯路又何乐而不为呢 接下来就来我实现这个自动化脚本经历的过程,首先要在火狐浏览器安装selenium IDE:其

python实现百度搜索

利用Python mechanize模块模拟浏览器实现百度搜索 # -*- coding:utf-8 -*- import mechanize import sys reload(sys) sys.setdefaultencoding('utf8') br=mechanize.Browser() br.set_handle_equiv(True) br.set_handle_redirect(True) br.set_handle_referer(True) br.set_handle_robo

Python实现百度搜索并保存到本地示例,Python实现百度搜索

实现百度搜索并保存到本地 User_Agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36' import urllib2 import urllib url = "https://www.baidu.com/s?wd=" key = "博客园" key_code = urllib.quo

一个推荐系统,实现完整的设计-在百度搜索关键词推荐案例

在之前一篇博文中, 有同学在评论中问了个问题: 怎样解决因式分解带来的推荐冷门.热门关键词的问题. 在回答这个问题的时候, 想到了近几年在做搜索推荐系统的过程中, 学术界和工业界的一些差别. 正好近期正在做技术规划, 于是写偏文章说下工业界完整推荐系统的设计.结论是: 没有某种算法可以全然解决这个问题, 多重算法+交互设计, 才干解决特定场景的需求. 下文也对之前的一些博文进行梳理.构成一个完整工业界推荐系统所具有的方方面面(主要以百度关键词搜索推荐系统为例) 完整的推荐系统肯定不会仅仅用一种推

调用百度搜索关键词

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>查询访问</title> <!-- https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd= https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=abc&cb=jQue

百度搜索关键词纠错机制研究

自动纠错链接:https://www.baidu.com/baidu?wd=c%E8%AF%AD%E8%A8%80+%E6%8E%A5%E5%8F%97%E5%8F%82%E6%95%B0&tn=monline_dg&ie=utf-8 手动修复关键词:https://www.baidu.com/s?wd=c%E8%AF%AD%E8%A8%80+%E6%8E%A5%E5%8F%97%E5%8F%82%E6%95%B0&tn=monline_dg&f=13&ie=utf