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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析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、如何实现数据的关联性?

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


以上是关于数据分析python分析百度搜索关键词的频率的主要内容,如果未能解决你的问题,请参考以下文章

python3爬取百度图片(2018年11月3日有效)

Python 可视化近 90 天的百度搜索指数 + 词云图

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

如何用Python下载百度指数的数据

关于“华为”的大数据分析

SEO学习知识