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 相关文章推荐
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
Python中asyncore异步模块的用法及实现httpclient的实例
Jun 28 Python
解决安装python库时windows error5 报错的问题
Oct 21 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
python文件拆分与重组实例
Dec 10 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
Python流程控制 while循环实现解析
Sep 02 Python
Python3实现配置文件差异对比脚本
Nov 18 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
django rest framework 自定义返回方式
Jul 12 Python
PyQt实现计数器的方法示例
Jan 18 Python
能让Python提速超40倍的神器Cython详解
Jun 24 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
建立文件交换功能的脚本(二)
2006/10/09 PHP
15种PHP Encoder的比较
2007/04/17 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
PHP反射机制用法实例
2014/08/28 PHP
dedecms集成财付通支付接口
2014/12/28 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
心理健康课教学反思
2014/02/13 职场文书
质检部经理岗位职责
2014/02/19 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
买房协议书
2014/04/11 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
工地材料员岗位职责
2015/04/11 职场文书
详解SQL的窗口函数
2022/04/21 Oracle
Docker安装MySql8并远程访问的实现
2022/07/07 Servers