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基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
Python 实现简单的电话本功能
Aug 09 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
Jun 29 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
Mar 05 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
Dec 04 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
python开发入门——set的使用
Sep 03 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
Django框架中模型的用法
Jun 10 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对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
PHP Session机制简介及用法
2014/08/19 PHP
php生成圆角图片的方法
2015/04/07 PHP
PHP整合PayPal支付
2015/06/11 PHP
jquery实现心算练习代码
2010/12/06 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
jQuery实现简单复制json对象和json对象集合操作示例
2018/07/09 jQuery
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
Python 正则表达式(转义问题)
2014/12/15 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
python 进程的几种创建方式详解
2019/08/29 Python
如何基于python生成list的所有的子集
2019/11/11 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
详解python程序中的多任务
2020/09/16 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
大学生优秀的自我评价分享
2013/10/22 职场文书
英语商务邀请函范文
2014/01/16 职场文书
银行类自荐信
2014/02/04 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
学雷锋日活动总结
2015/02/06 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL