爬取新浪微博热搜排行
爬取新浪微博热搜排行
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])
爬取新浪微博热搜排行相关推荐
- Python爬虫 爬取新浪微博热搜
Python爬虫 爬取新浪微博热搜 文章目录 Python爬虫 爬取新浪微博热搜 网页分析 数据爬取 数据存储 全部代码 网页分析 找到热搜的排名,标题和热度,发现它们在同一路径 数据爬取 impor ...
- Python爬虫与信息提取(五)爬虫实例:爬取新浪微博热搜排名
经过一段时间的Python网络爬虫学习,今天自己摸索制作了一个能够爬取新浪微博实时热搜排名的小爬虫 1.效果: 2.制作过程中遇到的问题: (1)一开始研究微博热搜页面的源代码时忽略了<tbod ...
- Python爬取新浪微博热搜榜
Python爬取新浪微博实时热搜榜.名人热搜榜.热点热搜榜和潮流热搜榜四大板块.这些板块都是不需要登录的,所以爬起来还是比较简单的.不过频繁的爬取会出现验证码. 作用爬取四大榜单的关键词和热搜指数并存 ...
- python爬取微博热搜显示到折线图_Python爬取新浪微博热搜榜-Go语言中文社区
我们如何爬取这50条热搜呢?今天写一个简单的方法供感兴趣的朋友们参考! 引用库: requests json lxml.etree bs4.BeautifulSoup引用方法如下: 如果没有下载的需要 ...
- 爬取新笔趣阁排行并保存到mysql_python+selenium爬取微博热搜存入Mysql的实现方法...
最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站link 下面我们来分析怎么实现 使用的库 import requests from selenium.webdr ...
- php获取微博热搜,爬取微博热搜top50(示例代码)
一.主题式网络爬虫设计方案(15分) 1.主题式网络爬虫名称:爬取微博热搜top50 2.主题式网络爬虫的内容与数据特征分析:排名 关键词 点击量 3.主题式网络爬虫设计方案概述: 先分析页面 对比源 ...
- 从零到一学爬虫-爬取微博热搜示例
爬取微博热搜榜-简单示例 使用爬虫模拟浏览器向微博热搜的服务器发送请求,得到响应,然后将响应的信息进行打印. 当我们直接打开浏览器,输入https://s.weibo.com/top/summary, ...
- python爬取百度标题_Python爬取百度热搜和数据处理
一.主题式网络爬虫设计方案 1.主题式网络爬虫名称:爬取百度热搜 2.主题式网络爬虫爬取的内容与数据特征分析:百度热搜排行,标题,热度 3.主题式网络爬虫设计方案概述:先搜索网站,查找数据并比对然后再 ...
- 使用 Nodejs 实现定时爬取微博热搜榜
The summer is coming " 我知道,那些夏天,就像青春一样回不来.- 宋冬野 青春是回不来了,倒是要准备渡过在西安的第三个夏天了. 看完本文的收获 ctrl + c ctr ...
最新文章
- iOSSharing #9 | 2019-05-19
- python log函数怎么打_Python的log日志功能及设置方法
- 搭建通用性多用户后台-思路
- 《程序是怎样跑起来的》第四章
- 观念什么意思_观念真不是凭空出现的,也不是单一的,观念来自环境并且不止一种...
- HTML5学习笔记(五):CSS基础
- SPT20 协议_过户协议书模板五篇
- 字符串的经典hash算法
- Thymeleaf学习总结(1)——新一代Java模板引擎Thymeleaf
- Linux内核4.14 LTS发布:那些最新最好的功能特性
- 句柄的本质(整理-收藏) 选择自 feijj2002_ 的 Blog
- springCloud之Feign rpc调用
- 可行性分析与需求分析
- SQL 练习题标准答案(点个赞呀)
- 攻防世界之互相伤害!!!
- OOM-Java内存不足排查与分析
- python实训小队项目总结
- 2022-2028年中国出境旅游行业市场行情动态及竞争战略分析报告
- IDEA 2021/2022 修改启动画面及设置编辑器背景图片
- 《python3廖雪峰》正则表达式匹配Email地址练习题答案
热门文章
- 2021秋招IC验证面经-华为/英伟达/兆易创新/ZeKu
- 浙江大学的计算机考研难度,浙江大学部分专业考研难度分析
- 13 个非常有用的 Python 代码片段,建议收藏!
- [16-8-1]每日总结
- 维修技术论坛万能预装系统 v5.0
- 蜂巢BeeconX|大型美容医院如何构建WiFi系统?
- 人工智能的落地及未来的发展
- 傅立叶变换的实质-正交之美
- 【backtrader源码解析52】indicators部分代码解读(枯燥,仅供参考,源代码解析结束,后面会增加一个backtrader框架分析)
- python上传钉钉媒体文件_python 上传钉钉图片