python爬取微博热搜榜
python爬取微博热搜榜
最近应我大学室友得需求,做了一个简单的爬虫案例,先给大家看一下程序运行效果
接下来就是贴出代码了,在这里我会做一些简单说明,对如刚入门的同学可能会有所帮助,这里使用的是python3
需要引入的包,这两个包可能需要自行下载
urllib lxml
代码
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();
遇到的问题
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爬取微博热搜榜相关推荐
- Python爬取微博热搜榜,将数据存入数据库
一直想学习用Python来进行数据的爬取,也一直想知道Python连接数据库的操作,今天刚好看到的这篇文章满足了这两个条件,我试着爬了下微博,并成功将数据添加到数据库中,颇为欢喜.作者写的很简单,有些 ...
- python爬取微博热搜榜教程,python爬取微博热搜并存入表格
微博热搜的爬取较为简单,我只是用了lxml和requests两个库 url= https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&am ...
- python爬取微博热搜显示到折线图_微博热搜榜前20信息数据爬取进行数据分析与可视化...
一.设计方案 1.主题式网络爬虫名称:微博热搜榜前20信息数据爬取进行数据分析与可视化 2.爬取内容与数据特征分析:爬取微博热搜榜前20热搜事件.排名与热度,数据呈一定规律排序. 3.设计方案概述:思 ...
- c#使用正则表达式获取TR中的多个TD_使用python+BeautifulSoup爬取微博热搜榜
本文将介绍基于Python使用BeautifulSoup爬取微博热搜榜的实现过程 1.首先导入需要使用的库 from bs4 import BeautifulSoup from urllib.requ ...
- 爬虫—爬取微博热搜榜
1. 引言 利用scrapy框架爬取微博热搜榜网站前50条热搜. 爬取信息:热搜排名.热搜新闻名.热搜新闻热搜量. 数据存储:存储为.csv文件. 2.爬取流程 新建scrapy爬虫项目: 在终端输入 ...
- python爬取微博热搜数据并保存!
主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下importrequests;importbs4mylist=[]r=requests.get(ur- 很多 ...
- python爬取微博热搜写入数据库_python实现爬取微博热搜存入Mysql
python爬取微博热搜存入Mysql最终的效果 使用的库 目标分析 一:得到数据 二:链接数据库 总代码 最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站lin ...
- Python爬取微博热搜数据之炫酷可视化
可视化展示 看完记得点个赞哟 微博炫酷可视化音乐组合版来了! 项目介绍 背景 现阶段,微博.抖音.快手.哗哩哗哩.微信公众号已经成为不少年轻人必备的"生活神器".在21世纪的今天, ...
- 爬虫实例:正则表达式爬取微博热搜榜
最近在学习python的爬虫知识,分享一个爬取微博热搜的实例,代码很简单. 用到了requests,re,xlwt库 直接看图: #1导入模块 import requests import re im ...
最新文章
- java 注解 数据字典_Spring实现数据字典翻译
- Nginx基础数据结构分析-ngx_chain_t
- php android 复制粘贴板,Android_Android剪贴板用法详解,本文实例详述了Android剪贴板的 - phpStudy...
- 手把手教你使用Python+scrapy爬取山东各城市天气预报
- 数据库存储时间的时区问题
- 用python求期望_用Python计算明日方舟2021龙门幸运墙期望
- github删除文件_Linux环境下Github操作指南
- SQL Server 2008安装和配置图解图(转)
- 最短路问题——spfa算法
- C# wpf NotifyIcon空间模仿qqz最小化,关闭功能(12)
- 全局最小割集Stoer-Wagner算法
- 广州大学计算机考研有歧视吗,本科985,考研被调剂去了普通一本广州大学,有必要读吗?...
- java affinity_线程亲和性(Thread Affinity)
- 【H3C模拟器】华三交换机配置IRF堆叠
- 【U3D方向专职猎头】 大厂、高薪职位资源多 非U3D资深勿扰 工作地点北京、深圳、上海、杭州、广州、成都、加微信17512088053
- 什么是动态代理,动态代理的应用有哪些
- kafka Reassign Partitions Tool
- studio 不能输入中文
- mongodb分片原理,字节跳动算法工程师面试总
- Liunx 创建隐藏文件夹