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中index()和seek()的用法(详解)
Apr 27 Python
Python中动态检测编码chardet的使用教程
Jul 06 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
python list转矩阵的实例讲解
Aug 04 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
Python使用Pandas对csv文件进行数据处理的方法
Aug 01 Python
python多线程案例之多任务copy文件完整实例
Oct 29 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
Docker如何部署Python项目的实现详解
Oct 26 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 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实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
Extjs中常用表单介绍与应用
2010/06/07 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
Python中使用item()方法遍历字典的例子
2014/08/26 Python
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
在Django中使用Sitemap的方法讲解
2015/07/22 Python
Python脚本处理空格的方法
2016/08/08 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
css3media响应式布局实例
2016/07/08 HTML / CSS
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
通信工程毕业生自荐信
2013/11/01 职场文书
高中的自我鉴定
2013/12/16 职场文书
打造完美自荐信
2014/01/24 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
销售会计岗位职责
2014/03/15 职场文书
求职信模板
2014/05/23 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
运动会表扬稿
2015/01/16 职场文书
2016年社区“6.26”禁毒日宣传活动总结
2016/04/05 职场文书
Mysql 如何查询时间段交集
2021/06/08 MySQL
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android