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 Django连接MySQL数据库做增删改查
Nov 07 Python
Python+MongoDB自增键值的简单实现
Nov 04 Python
Django在win10下的安装并创建工程
Nov 20 Python
对numpy.append()里的axis的用法详解
Jun 28 Python
Python+pandas计算数据相关系数的实例
Jul 03 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
python 实现汉诺塔游戏
Nov 28 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
给numpy.array增加维度的超简单方法
Jun 02 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 快速生成 Flash 动画的方法
2007/03/06 PHP
PHP strtr() 函数使用说明
2008/11/21 PHP
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
jQuery ui 1.7更新小结
2009/08/15 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
jquery常用操作小结
2014/07/21 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
JS 动态判断PC和手机浏览器实现代码
2016/09/21 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
英文留学推荐信范文
2014/01/25 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
防卫过当辩护词
2015/05/21 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
Python使用openpyxl批量处理数据
2021/06/23 Python