百度指数本身已经很好用了,但是如果进行二次整理,需要把原始数据采集下来就不是那么方便了。网页的请求只有一次,
需要的具体数据随鼠标的移动变化,所以,常规的requests请求网页,解析网页并不能满足需求,感觉可以使用selenium模拟完成鼠标移动,
进而获取数据,但是还没进行实际测试,检查网页源代码,感觉事情并没有那么简单,只好先选择另外一种,比较笨的方法。
实测在数据量不大的情况下,效果显著。

主要步骤

  1. 原始数据存在于class="index-trend-chart"的div里,随鼠标移动数据变化,所以只要模拟鼠标的移动动作,然后复制这个div的内容。

  2. 选择工具实现上一步的想法,这里使用的按键精灵,这个软件(姑且叫它软件了)需要根据自己电脑的屏幕情况具体操作,
    (x,y)表示指数数据第一天的屏幕坐标,(x1,y1)表示class="index-trend-chart"div的屏幕坐标,x右移的步长值需要自己测试。
    代码如下:

    x = 63
    y = 639
    x1 = 1287
    y1= 609For 365
    MoveTo x, y
    Delay 100
    MoveTo x1, y1
    LeftClick 1
    RightClick 1
    MoveTo x1+90, y1+96
    Delay 100
    LeftClick 1
    MoveTo x1+264, y1+184
    Delay 100
    LeftClick 1
    t = Plugin.Sys.GetCLB()
    Call Plugin.File.WriteFileEx("F:\python.txt",t)
    Delay 100
    x=x+3
    Next

  3. 解析上一步获取的outHtml内容文件。解析方法有很多,使用BeautifulSoup解析即可。写入表格文件中,

    from bs4 import BeautifulSoup
    import csv
    f = open("python.txt")
    txt = f.read()soup = BeautifulSoup(txt,"lxml")
    cf = open("data.csv",'wt',newline='',encoding='utf-8')
    w = csv.writer(cf)
    daily = soup.findAll("div",{"class":"index-trend-chart"})
    for i in daily:d = i.findAll('div',{'style':'color: #999;'})data = i.findAll('div',{'style':'margin: 6px 0;'})for u in data:row = u.get_text().split('\n\xa0\xa0')row.append(d[0].get_text().split(' ')[0])print(row)w.writerow(row)cf.close()
    

经验总结

虽然看起来不是很优雅,但不管黑猫白猫,能捉到老鼠就是好猫,一年365组数据400毫秒一次,大概3分钟不到,也不存在对付反爬措施,获取小批量数据的需求还是可以采用的。
原文地址
附:按键精灵资料参考.

python+按键精灵实现百度指数数据爬取相关推荐

  1. 6.9 用Python操控数据库(批量删除,百度新闻数据爬取与存储,写入数据时进行去重处理,pandas读取sql数据)

    学习完MySQL数据库的基本操作后,下面来学习如何用Python连接数据库,并进行数据的插入.查找.删除等操作. 6.9.1 用PyMySQL库操控数据库 上一节在phpMyAdmin 中创建了数据库 ...

  2. Python爬虫《自动化学报》数据爬取与数据分析

    Python爬虫<自动化学报>数据爬取与数据分析 文章目录 Python爬虫<自动化学报>数据爬取与数据分析 前言 一.代码 二.结果展示 三.爬虫实现 1.准备 2.获取网页 ...

  3. 【自然语言处理概述】百度百科数据爬取

    [自然语言处理概述]百度百科数据爬取 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建设专家委员会(TIPC ...

  4. Python爬虫-CSDN博客排行榜数据爬取

    文章目录 前言 网络爬虫 搜索引擎 爬虫应用 谨防违法 爬虫实战 网页分析 编写代码 运行效果 反爬技术 前言 开始接触 CTF 网络安全比赛发现不会写 Python 脚本的话简直寸步难行--故丢弃 ...

  5. python爬虫,g-mark网站图片数据爬取及补坑

    应用python对g-mark网站图片数据爬取,同时但对于数据抓取失败的图片进行补坑(重新爬取操作),由于是日本网站,没有梯子访问的话,特别容易访问超时,比较合适的补坑操作是直接将数据采集到数据库,而 ...

  6. java爬虫实现百度地图数据爬取

    本次项目主要实现百度地图地点检索功能的数据爬取,可以获得检索的相关信息.主要是采用百度地图API接口实现,采用的是servlet,数据库采用的是mybatis.话不多说,上代码. 1.DAO层数据 p ...

  7. 用python爬取指定数据流量是几点_使用python进行微信宜出行人流量数据爬取

    写在前面 由于宜出行的登录策略更新,导致无法使用qq登录直接爬取人流量的问题,近期进行了代码升级,已经解决了该问题,并且能顺利爬取数据,示例如下.目前暂不提供源代码,如有需要宜出行数据,可联系:917 ...

  8. (python爬虫)新浪新闻数据爬取与清洗+新浪新闻数据管理系统+MySQL

    新浪新闻数据爬取与清洗+新浪新闻数据管理系统 设计要求 新浪新闻数据爬取与清洗 基本要求:完成新浪新闻排行中文章的数据爬取,包括标题.媒体.时间.内容. 进阶要求:对最近一周出现次数最多的关键字排名并 ...

  9. Python网络爬虫实战1:百度新闻数据爬取

    目录 一.  获取网页源代码 1.  四行代码获取(有时不灵) 2. 五行代码获取(常用方法) 二.分析网页源代码信息 方法1:F12方法 方法2:右击选择"查看网页源代码" 方法 ...

最新文章

  1. Codeforces Gym 101473D Folding Machine (暴力搜索)
  2. 锐捷设备密码破解方法
  3. c++ lambda 重载_您会后悔对Lambdas应用重载!
  4. python图形化编程更改内部参数_python-参数化-(3)(替换数据)
  5. 2021中国新锐品牌发展研究:食品饮料行业报告
  6. python网络爬虫系列教程——python中pyquery库应用全解
  7. JS学习总结(14)——Events事件
  8. RXJAVA之Subject
  9. 基于Paddle Serving百度智能边缘BIE的边缘AI解决方案
  10. 记录:汇编语言编译器选择(vscode,永远的神)
  11. c 语言实现链表反转(超详细,有手就行)
  12. android启用hdcp_如何在Android Auto上启用开发人员设置
  13. UG编程加工之非切削移动
  14. 英特尔科技论坛 北京登场
  15. 【Bug解决】UnpicklingError: A load persistent id instruction was encountered, but no persistent_load.
  16. [MRCTF2020]套娃
  17. Windows文件资源管理器,搜索框的使用技巧
  18. 《邂逅美丽》之赏析2
  19. 苹果广告词:一直以来让我深有感触的一段话
  20. 上海交大计算机科学与工程,上海交通大学计算机科学与工程系(CSE)

热门文章

  1. DrawCall合并
  2. 艺术字(CoreIDRAW)
  3. 网页制作中灯笼制作步骤
  4. 什么是MySQL分区表
  5. StarRocks 2.0,新一年,新启航,新极速
  6. 198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报
  7. 算法题 匈牙利算法 求二分图最大匹配(Python)
  8. 企业股权激励的三种倾向
  9. ppt学习03——形状
  10. vue根据文件路径预览docx