爬取新浪微博热搜排行

1.1 爬虫基本原理解析

  • 什么是爬虫

    • 通过编写程序模拟浏览器上网 在互联网抓取数据的过程
  • 分类
    • 通用爬虫

      • 搜索引擎用的爬虫系统
      • 尽可能把互联网的所有网页下载 放到本地服务器形成备份 在对这些网页做相关处理 (提取关键字 去掉广告) 每隔一段时间重新获取
      • 举例
        • 百度搜索博为峰 --百度快照–访问的是百度服务器的缓存数据 –
        • 好处 – 如果网页被封掉了 百度快照 – 服务器 有可能会有备份(不能爬图片 只能是文本 /文字相关的 )
    • 聚焦爬虫
      • 爬虫程序员写的针对某种内容爬虫 面向需求
      • (这节课的新浪微博就是聚焦爬虫)
  • 爬虫价值
    • 获取数据
    • 对于软件测试来讲
      • 获取有效数据 为测试提供便捷 (排行–获取数据–和数据库数据进行对比 )
      • 提高编程技能
    • 如何爬虫
      • 模拟浏览器发送请求
      • 对数据进行解析

1.2 网页源码获取及转换

  • 环境配置 类库安装

    • python
    • pip install requests
  • 对获取数据进行解析

    • etree

    • pip install lxml

    • lxml

      • 是一个python 的第三方模块 主要功能是如何解析和提取 HTML/xml
      • 可以结合xpath语法 进行快速定位特定元素以及节点信息
    • 请求技术点

      • 如何发送请求
      • 获取响应数据(文本)
      • 伪造请求头
      • 将响应文本信息转化成xpath结构
    from lxml import etree
    import requests
    # 伪装请求头
    headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"}
    res = requests.get("https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6",headers=headers)
    # 获取响应状态码
    print(res.status_code)
    # 获取响应文本信息
    print(res.text)
    print(type(res.text))
    # 查看请求头信息
    print(res.request.headers)
    html = etree.HTML(res.text)
    print(type(html))
    

1.3 节点、属性、内容的获取

  • 标签构成

    • 标签名 属性 属性值
  • 提取响应title

    • 通过路径

      • html.xpath("/html/head/title/text()" – 绝对路径

      • //title/text() – 相对路径提取

      • //a.text() – 获取当前网页 所有a标签的文本信息 – 以列表方式进行返回

      • 获取标签详情

        • from lxml.html import tostring
          result = html.xpath("//title")[0]
          print('看结果这里', tostring(result, encoding="utf-8").decode("utf-8"))
          
    • 指定标签属性值获取

      • //a – 获取绝对路径的标签

      • 根据标签属性值获取指定标签

        • //a[@class='cur']/text()
          
        • 通过多个属性定位标签

          • html.xpath("//a[@class='cur' and @title='热搜榜']/text()")
            

1.4 爬取新浪微博热搜思路梳理

  • 获取请求url

    • https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6
      
  • 建立请求 并将响应数据解析成html接口

  • 解析网页 提取 热搜排行 热搜内容 热搜数

  • 将获取信息进行处理 信息一一对

    • python 列表获取数据
    • for 循环
from lxml import etree
import requests
from lxml.html import tostringres = requests.get("https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6")
# 数据解析 -- 把网页变成xpath 结构
html = etree.HTML(res.text)
# 排行
top = html.xpath('//td[@class="td-01 ranktop"]/text()')
# 热搜内容
content = html.xpath('//td[@class="td-02"]/a/text()')
# 热搜数
hot = html.xpath('//td[@class="td-02"]/span/text()')
# print(top)
# print(content)
# print(hot)
print(len(top), len(content), len(hot))
# 内容多一条 -- (热搜置顶)
for i in range(len(hot)):print(top[i], content[i + 1], hot[i])

爬取新浪微博热搜排行相关推荐

  1. Python爬虫 爬取新浪微博热搜

    Python爬虫 爬取新浪微博热搜 文章目录 Python爬虫 爬取新浪微博热搜 网页分析 数据爬取 数据存储 全部代码 网页分析 找到热搜的排名,标题和热度,发现它们在同一路径 数据爬取 impor ...

  2. Python爬虫与信息提取(五)爬虫实例:爬取新浪微博热搜排名

    经过一段时间的Python网络爬虫学习,今天自己摸索制作了一个能够爬取新浪微博实时热搜排名的小爬虫 1.效果: 2.制作过程中遇到的问题: (1)一开始研究微博热搜页面的源代码时忽略了<tbod ...

  3. Python爬取新浪微博热搜榜

    Python爬取新浪微博实时热搜榜.名人热搜榜.热点热搜榜和潮流热搜榜四大板块.这些板块都是不需要登录的,所以爬起来还是比较简单的.不过频繁的爬取会出现验证码. 作用爬取四大榜单的关键词和热搜指数并存 ...

  4. python爬取微博热搜显示到折线图_Python爬取新浪微博热搜榜-Go语言中文社区

    我们如何爬取这50条热搜呢?今天写一个简单的方法供感兴趣的朋友们参考! 引用库: requests json lxml.etree bs4.BeautifulSoup引用方法如下: 如果没有下载的需要 ...

  5. 爬取新笔趣阁排行并保存到mysql_python+selenium爬取微博热搜存入Mysql的实现方法...

    最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站link 下面我们来分析怎么实现 使用的库 import requests from selenium.webdr ...

  6. php获取微博热搜,爬取微博热搜top50(示例代码)

    一.主题式网络爬虫设计方案(15分) 1.主题式网络爬虫名称:爬取微博热搜top50 2.主题式网络爬虫的内容与数据特征分析:排名 关键词 点击量 3.主题式网络爬虫设计方案概述: 先分析页面 对比源 ...

  7. 从零到一学爬虫-爬取微博热搜示例

    爬取微博热搜榜-简单示例 使用爬虫模拟浏览器向微博热搜的服务器发送请求,得到响应,然后将响应的信息进行打印. 当我们直接打开浏览器,输入https://s.weibo.com/top/summary, ...

  8. python爬取百度标题_Python爬取百度热搜和数据处理

    一.主题式网络爬虫设计方案 1.主题式网络爬虫名称:爬取百度热搜 2.主题式网络爬虫爬取的内容与数据特征分析:百度热搜排行,标题,热度 3.主题式网络爬虫设计方案概述:先搜索网站,查找数据并比对然后再 ...

  9. 使用 Nodejs 实现定时爬取微博热搜榜

    The summer is coming " 我知道,那些夏天,就像青春一样回不来.- 宋冬野 青春是回不来了,倒是要准备渡过在西安的第三个夏天了. 看完本文的收获 ctrl + c ctr ...

最新文章

  1. iOSSharing #9 | 2019-05-19
  2. python log函数怎么打_Python的log日志功能及设置方法
  3. 搭建通用性多用户后台-思路
  4. 《程序是怎样跑起来的》第四章
  5. 观念什么意思_观念真不是凭空出现的,也不是单一的,观念来自环境并且不止一种...
  6. HTML5学习笔记(五):CSS基础
  7. SPT20 协议_过户协议书模板五篇
  8. 字符串的经典hash算法
  9. Thymeleaf学习总结(1)——新一代Java模板引擎Thymeleaf
  10. Linux内核4.14 LTS发布:那些最新最好的功能特性
  11. 句柄的本质(整理-收藏) 选择自 feijj2002_ 的 Blog
  12. springCloud之Feign rpc调用
  13. 可行性分析与需求分析
  14. SQL 练习题标准答案(点个赞呀)
  15. 攻防世界之互相伤害!!!
  16. OOM-Java内存不足排查与分析
  17. python实训小队项目总结
  18. 2022-2028年中国出境旅游行业市场行情动态及竞争战略分析报告
  19. IDEA 2021/2022 修改启动画面及设置编辑器背景图片
  20. 《python3廖雪峰》正则表达式匹配Email地址练习题答案

热门文章

  1. 2021秋招IC验证面经-华为/英伟达/兆易创新/ZeKu
  2. 浙江大学的计算机考研难度,浙江大学部分专业考研难度分析
  3. 13 个非常有用的 Python 代码片段,建议收藏!
  4. [16-8-1]每日总结
  5. 维修技术论坛万能预装系统 v5.0
  6. 蜂巢BeeconX|大型美容医院如何构建WiFi系统?
  7. 人工智能的落地及未来的发展
  8. 傅立叶变换的实质-正交之美
  9. 【backtrader源码解析52】indicators部分代码解读(枯燥,仅供参考,源代码解析结束,后面会增加一个backtrader框架分析)
  10. python上传钉钉媒体文件_python 上传钉钉图片