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实现倒计时的示例
Feb 14 Python
python实现一次创建多级目录的方法
May 15 Python
Python中type的构造函数参数含义说明
Jun 21 Python
python非递归全排列实现方法
Apr 10 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
python实现共轭梯度法
Jul 03 Python
python实现引用其他路径包里面的模块
Mar 09 Python
python 实现朴素贝叶斯算法的示例
Sep 30 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
python编写扎金花小程序的实例代码
Feb 23 Python
Python图像处理库PIL详细使用说明
Apr 06 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
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
php目录拷贝实现方法
2015/07/10 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
JavaScript实现拼音排序的方法
2012/11/20 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
DOM 事件流详解
2015/01/20 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
有关打架的检讨书
2014/01/25 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
机动车登记业务委托书
2014/10/08 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
图解上海144收音机
2021/04/22 无线电
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电
zabbix配置nginx监控的实现
2022/05/25 Servers