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实现给数组按片赋值的方法
Jul 28 Python
深入理解Python3中的http.client模块
Mar 29 Python
详解python string类型 bytes类型 bytearray类型
Dec 16 Python
python ansible服务及剧本编写
Dec 29 Python
python获取文件路径、文件名、后缀名的实例
Apr 23 Python
Python随机函数random()使用方法小结
Apr 29 Python
Python迭代器与生成器基本用法分析
Jul 26 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
Python使用正则表达式分割字符串的实现方法
Jul 16 Python
pycharm 中mark directory as exclude的用法详解
Feb 14 Python
Django+boostrap 美化admin后台的操作
Mar 11 Python
Python中time与datetime模块使用方法详解
Mar 31 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边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
php 归并排序 数组交集
2011/05/10 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
详解PHP归并排序的实现
2016/10/18 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
js 多浏览器分别判断代码
2010/04/01 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
python实现挑选出来100以内的质数
2015/03/24 Python
python保存字符串到文件的方法
2015/07/01 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
python palywright库基本使用
2021/01/21 Python
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
简历中求职的个人自我评价
2013/12/03 职场文书
安全教育心得体会
2013/12/29 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
关于责任的演讲稿
2014/05/20 职场文书
十佳党员事迹材料
2014/08/28 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
2015入党自传书范文
2015/06/26 职场文书