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 yield 小结和实例
Apr 25 Python
用Python的线程来解决生产者消费问题的示例
Apr 02 Python
Python实现字典去除重复的方法示例
Jul 31 Python
解决python3捕获cx_oracle抛出的异常错误问题
Oct 18 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
详解Django+uwsgi+Nginx上线最佳实战
Mar 14 Python
python实现翻转棋游戏(othello)
Jul 29 Python
python计算二维矩形IOU实例
Jan 18 Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
Django如何创作一个简单的最小程序
May 12 Python
如何用六步教会你使用python爬虫爬取数据
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
php调用mysql数据 dbclass类
2011/05/07 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
jQuery属性选择器用法实例分析
2019/06/28 jQuery
Python XML RPC服务器端和客户端实例
2014/11/22 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python中有关时间日期格式转换问题
2019/12/25 Python
python实现微信打飞机游戏
2020/03/24 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
Python如何急速下载第三方库详解
2020/11/02 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
骨干教师事迹材料
2014/12/17 职场文书
小学科学教学计划
2015/01/21 职场文书
物流业务员岗位职责
2015/04/03 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python