【Python爬虫】百度指数爬取+导入数据库+QuickBI展示

python+mysql+quickbi,十大车厂的百度指数可视化趋势
摘要由CSDN通过智能技术生成

百度指数爬取原文在这里:如何用Python下载百度指数的数据_小小明-代码实体的专栏-CSDN博客

00.序言

一直想把百度指数每天定时爬下来,然后放到Dashboard里展示,终于,我看到了大神给出的方法。开心开心....本文会把每个步骤得到的结果一一列出(方便哪天脑子不好使,不知道这个步骤是干嘛的)

注意事项:

  1. 百度指数需要登录账号(为的是拿cookie,拿完就不用了吧)
  2. cookie需要在开发者工具里面找(Chrome F12)随便找一个链接打开,往下滑都能找到
  3. 百度指数只给塞5个对比词,超过了就需要再来一遍

01.百度指数爬虫

首先是标题头,大概知道这是为了伪装我们的爬虫像个正常用户一样去浏览,防止反爬...但具体的,等我深入学习之后再来填坑吧

headers = {
    "Connection": "keep-alive",
    "Accept": "application/json, text/plain, */*",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
    "Sec-Fetch-Site": "same-origin",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Dest": "empty",
    "Referer": "https://index.baidu.com/v2/index.html",
    "Accept-Language": "zh-CN,zh;q=0.9",
    'Cookie': '太长,随用随找吧'
}

然后是解密函数,这个是重点啊!!!(原文作者用decrypt搜索全局,找到了解密函数,论函数名字的的重要性)

def decrypt(ptbk, index_data):  ## ptbk='pm1r-DUTRjYaVX95801+27.36-,%49';index_data='r1rpXar11Xja9DrXammpma91rrammjpa9DpU'
    n = len(ptbk)//2    ## 15
    a = dict(zip(ptbk[:n], ptbk[n:]))  ## {'p': '5', 'm': '8', '1': '0', 'r': '1', '-': '+', 'D': '2', 'U': '7', 'T': '.', 'R': '3', 'j': '6', 'Y': '-', 'a': ',', 'V': '%', 'X': '4', '9': '9'}
    return "".join([a[s] for s in index_data])

然后是正文部分,把百度指数的数值爬取出来,装到数组里面,然后返回结果。

def get_index_data(keys, start=None, end=None):  ##keys=['大众','丰田','特斯拉']
    words = [[{"name": key, "wordType": 1}] for key in keys] 
    words = str(words).replace(" ", "").replace("'", "\"")  ##'[[{"name":"丰田","wordType":1}],[{"name":"特斯拉","wordType":1}],[{"name":"大众","wordType":1}]]'
    today = date.today()     ## 2021-11-28
    if start is None:        
        start = str(today-timedelta(days=8))    ## '2021-11-20'
    if end is None:
        end = str(today-timedelta(days=2))      ## '2021-11-26'       

    url = f'http://index.baidu.com/api/SearchApi/index?area=0&word={words}&area=0&startDate={start}&endDate={end}' ## 'http://index.baidu.com/api/SearchApi/index?area=0&word=[[{"name":"丰田","wordType":1}],[{"name":"特斯拉","wordType":1}],[{"name":"大众","wordType":1}]]&area=0&startDate=2021-11-20&endDate=2021-11-26'
    print(words, start, end)
    res = requests.get(url, headers=headers)  ## <Response [200]>
    data = res.json()['data']        ## {'userIndexes': [ {'word': [{'name': '丰田', 'wordType': 1}], 'all': {'startDate': '2021-11-20', 'endDate': '2021-11-26', 'data': 'r1rpXar11Xja9DrXammpma91rrammjpa9DpU'}, 'pc': {'startDate': '2021-11-20', 'endDate': '2021-11-26', 'da
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Python爬虫是一种通过编写Python程序来自动化获互联网上的数据的技术。爬虫可以用于从网上抓各种数据,包括文字、图片、视频等。而网课数据是指使用爬虫技术从网上抓各种网课相关的数据,比如课程名称、课程价格、课程评分等。 网课数据的过程通常分为以下几个步骤: 1. 确定要的目标网站和数据,比如某个网上教育平台的课程页面。 2. 使用Python爬虫库,比如Requests库或Scrapy框架,发送HTTP请求获网页内容。 3. 使用解析库,比如BeautifulSoup库或XPath,解析网页内容,提所需的数据。 4. 对数据进行清洗和处理,比如去除HTML标签、缺失值处理等。 5. 将清洗过的数据保存到本地文件或数据库中,以备后续分析和可视化使用。 在获到网课数据后,可以使用可视化工具,比如Matplotlib库或Plotly库,来进行数据的可视化展示。通过可视化,可以更直观地理解和分析数据,并将数据以图表的形式展示出来,比如柱状图、折线图、饼图等。这些图表可以帮助人们更好地理解网课的分布、趋势和关联性,为决策提供参考。 总而言之,Python爬虫技术可以用于网课数据的,而数据的可视化则可以通过使用Python的可视化库来实现。这种方式可以帮助我们更好地利用网上的网课资源,并通过数据分析和可视化来获得更多的洞见和价值。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值