python爬取微博热搜榜

最近应我大学室友得需求,做了一个简单的爬虫案例,先给大家看一下程序运行效果


接下来就是贴出代码了,在这里我会做一些简单说明,对如刚入门的同学可能会有所帮助,这里使用的是python3

  1. 需要引入的包,这两个包可能需要自行下载

    urllib
    lxml
    
  2. 代码

    import urllib.request #导入urllib.request库
    import urllib.parse
    from lxml import etree#b = str(input("请输入:"))   #提示用户输入信息,并强制类型转换为字符串型def weibo() :url = 'https://s.weibo.com/top/summary?'a = urllib.request.urlopen(url)  #打开指定网址html = a.read()  #读取网页源码html = html.decode("utf-8")  #解码为unicode码# print(html)                #打印网页源码tree = etree.HTML(html)list = tree.xpath(u'//*[@id="pl_top_realtimehot"]/table/tbody/tr/td[@class="td-02"]')prefix = 'https://s.weibo.com'  # 微博域名weiboSummary = open("微博热搜.txt", 'w')  #打开并写入文件for index,item in enumerate(list):if index > 0:a_element = item.xpath('.//a')[0]title = a_element.text # 关键词href = urllib.parse.unquote(a_element.attrib.get('href')) # 链接href = href.replace("#", "%23") #此处是对链接中的#号做一个编码转换,否则无法跳转指定关键词链接hot = item.xpath('./span')[0].text #热度指数line = str(index) + "\t" + title + "\t" + hot + "\t" + prefix + href + "\n"print(line.replace("\n", ""))if href.find("javascript:void(0)") != -1:line = str(index) + "\t" + title + "\t" + hot#写入文件weiboSummary.write(line)else:title = '排名\t关键词\t热度\t链接\n'print(title.replace("\n",""))weiboSummary.write(title)weiboSummary.close()#调用方法
    weibo();
    
  3. 遇到的问题

    1).这是本文中关于lxml的一些简单用法

    代码中的 etree.HTML(html)是获取页面源码对象

    获取到节点对象以后可以使用 xpath()来获取元素内容,此处可以使用下图中的方法,注意:该方法类似于JQuery的类选择器,如果按xpath('//a')这种写法,获取的是页面中所有的a标签。

    u代表的是编码方式

    element = tree.xpath(u'//*[@id="pl_top_realtimehot"]/table/tbody/tr/td[@class="td-02"]')

    element.text获取的是当前对象标签中的文本

    属性的话我们可以通过element.attrib.get('标签中的属性名')这种方式获取标签属性的内容

    详细的lxml文档操作可以自行百度

    2). 关于IO

    我在使用python的IO操作时候遇到一些问题

    具体的错误原因我还尚不明确,不过导致报错的原因是因为我导入了 IO 的包,python中本身带有IO操作的相关API
    我们只需要直接调用就可以
    例如:open('weibo.txt', 'w') 不需要使用 os.open('weibo.txt')使用完之后要记得关闭资源

此处感谢:https://blog.csdn.net/lyandgh/article/details/81013897

python爬取微博热搜榜相关推荐

  1. Python爬取微博热搜榜,将数据存入数据库

    一直想学习用Python来进行数据的爬取,也一直想知道Python连接数据库的操作,今天刚好看到的这篇文章满足了这两个条件,我试着爬了下微博,并成功将数据添加到数据库中,颇为欢喜.作者写的很简单,有些 ...

  2. python爬取微博热搜榜教程,python爬取微博热搜并存入表格

    微博热搜的爬取较为简单,我只是用了lxml和requests两个库 url= https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&am ...

  3. python爬取微博热搜显示到折线图_微博热搜榜前20信息数据爬取进行数据分析与可视化...

    一.设计方案 1.主题式网络爬虫名称:微博热搜榜前20信息数据爬取进行数据分析与可视化 2.爬取内容与数据特征分析:爬取微博热搜榜前20热搜事件.排名与热度,数据呈一定规律排序. 3.设计方案概述:思 ...

  4. c#使用正则表达式获取TR中的多个TD_使用python+BeautifulSoup爬取微博热搜榜

    本文将介绍基于Python使用BeautifulSoup爬取微博热搜榜的实现过程 1.首先导入需要使用的库 from bs4 import BeautifulSoup from urllib.requ ...

  5. 爬虫—爬取微博热搜榜

    1. 引言 利用scrapy框架爬取微博热搜榜网站前50条热搜. 爬取信息:热搜排名.热搜新闻名.热搜新闻热搜量. 数据存储:存储为.csv文件. 2.爬取流程 新建scrapy爬虫项目: 在终端输入 ...

  6. python爬取微博热搜数据并保存!

    主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下importrequests;importbs4mylist=[]r=requests.get(ur- 很多 ...

  7. python爬取微博热搜写入数据库_python实现爬取微博热搜存入Mysql

    python爬取微博热搜存入Mysql最终的效果 使用的库 目标分析 一:得到数据 二:链接数据库 总代码 最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站lin ...

  8. Python爬取微博热搜数据之炫酷可视化

    可视化展示 看完记得点个赞哟 微博炫酷可视化音乐组合版来了! 项目介绍 背景 现阶段,微博.抖音.快手.哗哩哗哩.微信公众号已经成为不少年轻人必备的"生活神器".在21世纪的今天, ...

  9. 爬虫实例:正则表达式爬取微博热搜榜

    最近在学习python的爬虫知识,分享一个爬取微博热搜的实例,代码很简单. 用到了requests,re,xlwt库 直接看图: #1导入模块 import requests import re im ...

最新文章

  1. java 注解 数据字典_Spring实现数据字典翻译
  2. Nginx基础数据结构分析-ngx_chain_t
  3. php android 复制粘贴板,Android_Android剪贴板用法详解,本文实例详述了Android剪贴板的 - phpStudy...
  4. 手把手教你使用Python+scrapy爬取山东各城市天气预报
  5. 数据库存储时间的时区问题
  6. 用python求期望_用Python计算明日方舟2021龙门幸运墙期望
  7. github删除文件_Linux环境下Github操作指南
  8. SQL Server 2008安装和配置图解图(转)
  9. 最短路问题——spfa算法
  10. C# wpf NotifyIcon空间模仿qqz最小化,关闭功能(12)
  11. 全局最小割集Stoer-Wagner算法
  12. 广州大学计算机考研有歧视吗,本科985,考研被调剂去了普通一本广州大学,有必要读吗?...
  13. java affinity_线程亲和性(Thread Affinity)
  14. 【H3C模拟器】华三交换机配置IRF堆叠
  15. 【U3D方向专职猎头】 大厂、高薪职位资源多 非U3D资深勿扰 工作地点北京、深圳、上海、杭州、广州、成都、加微信17512088053
  16. 什么是动态代理,动态代理的应用有哪些
  17. kafka Reassign Partitions Tool
  18. studio 不能输入中文
  19. mongodb分片原理,字节跳动算法工程师面试总
  20. Liunx 创建隐藏文件夹

热门文章

  1. 使用 mesh 实现多边形裁剪图片!Cocos Creator!
  2. Unity通过脚本实现不规则多边形的碰撞检测
  3. Java类和对象之对象引用之模拟手机功能
  4. 合宙Air724 Luat 开发接入ThingsCloud 物联网云平台
  5. uni.app H5(微信公众号定位) uni.getLocation
  6. 百度App组件化之路
  7. gitlab提交代码提示The remote end hung up unexpectedly
  8. UE4 后期材质节点学习
  9. Go语言核心之美 2.5-字符串
  10. 设计师都在用的素材网站,真的纯免费,还能商用