Python网络爬虫之爬取微博热搜


Posted in Python onApril 18, 2019

微博热搜的爬取较为简单,我只是用了lxml和requests两个库

url= https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6

1.分析网页的源代码:右键--查看网页源代码.

Python网络爬虫之爬取微博热搜

从网页代码中可以获取到信息

(1)热搜的名字都在<td class="td-02">的子节点<a>里

(2)热搜的排名都在<td class=td-01 ranktop>的里(注意置顶微博是没有排名的!)

(3)热搜的访问量都在<td class="td-02">的子节点<span>里

2.requests获取网页

(1)先设置url地址,然后模拟浏览器(这一步可以不用)防止被认出是爬虫程序。

###网址
url="https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6"
###模拟浏览器,这个请求头windows下都能用
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}

(2)利用req uests库的get()和lxml的etr ee()来获 取网页代码

###获取html页面
  html=etree.HTML(requests.get(url,headers=header).text)

3.构造xpath路径

上面第一步中三个xath路径分别是:

affair=html.xpath('//td[@class="td-02"]/a/text()')
rank=html.xpath('//td[@class="td-01 ranktop"]/text()')
view=html.xpath('//td[@class="td-02"]/span/text()')

xpath的返回结果是列表,所以affair、rank、view都是字符串列表

  4.格式化输出

需要注意的是affair中多了一个置顶热搜,我们先将他分离出来。

top=affair[0]
affair=affair[1:]

这里利用了python的切片。

print('{0:<10}\t{1:<40}'.format("top",top))
  for i in range(0, len(affair)):
    print("{0:<10}\t{1:{3}<30}\t{2:{3}>20}".format(rank[i],affair[i],view[i],chr(12288)))

这里还是没能做到完全对齐。。。

 5.全部代码

###导入模块
import requests
from lxml import etree
###网址
url="https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6"
###模拟浏览器
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
###主函数
def main():
  ###获取html页面
  html=etree.HTML(requests.get(url,headers=header).text)
  rank=html.xpath('//td[@class="td-01 ranktop"]/text()')
  affair=html.xpath('//td[@class="td-02"]/a/text()')
  view = html.xpath('//td[@class="td-02"]/span/text()')
  top=affair[0]
  affair=affair[1:]
  print('{0:<10}\t{1:<40}'.format("top",top))
  for i in range(0, len(affair)):
    print("{0:<10}\t{1:{3}<30}\t{2:{3}>20}".format(rank[i],affair[i],view[i],chr(12288)))
main()

结果展示:

Python网络爬虫之爬取微博热搜

总结

以上所述是小编给大家介绍的Python网络爬虫之爬取微博热搜,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
在Python中使用dict和set方法的教程
Apr 27 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
python递归法解决棋盘分割问题
Jul 17 Python
Python一键安装全部依赖包的方法
Aug 12 Python
centos7中安装python3.6.4的教程
Dec 11 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
python GUI计算器的实现
Oct 09 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
Oct 15 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 #Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 #Python
Python面向对象总结及类与正则表达式详解
Apr 18 #Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 #Python
详解python数据结构和算法
Apr 18 #Python
python基础知识(一)变量与简单数据类型详解
Apr 17 #Python
关于python多重赋值的小问题
Apr 17 #Python
You might like
php下将XML转换为数组
2010/01/01 PHP
php验证session无效的解决方法
2014/11/04 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
JavaScript this 深入理解
2009/07/30 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
python两种注释用法的示例
2020/10/09 Python
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
物业管理委托协议(2篇)
2014/09/23 职场文书
2014年物业管理工作总结
2014/11/21 职场文书