Python爬虫爬取微博热搜保存为 Markdown 文件的源码


Posted in Python onFebruary 22, 2021

什么是爬虫?

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

其实通俗的讲就是通过程序去获取web页面上自己想要的数据,也就是自动抓取数据

爬虫可以做什么?

你可以爬取小姐姐的图片,爬取自己有兴趣的岛国视频,或者其他任何你想要的东西,前提是,你想要的资源必须可以通过浏览器访问的到。

爬虫的本质是什么?

上面关于爬虫可以做什么,定义了一个前提,是浏览器可以访问到的任何资源,特别是对于知晓web请求生命周期的学者来说,爬虫的本质就更简单了。爬虫的本质就是模拟浏览器打开网页,获取网页中我们想要的那部分数据。

微博热搜榜python爬虫,仅供学习交流


Python爬虫爬取微博热搜保存为 Markdown 文件的源码

源码及注释:

# -*- coding=UTF-8 -*-
#!usr/bin/env python

import os
import time
import requests
from lxml import etree

url = "https://s.weibo.com/top/summary?cate=realtimehot"
headers={
 'Host': 's.weibo.com',
 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
 'Accept-Encoding': 'gzip, deflate, br',
 'Accept-Language': 'zh-CN,zh;q=0.9',
 'Connection': 'keep-alive',
 'Referer': 'https://weibo.com/',
 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'
}
r = requests.get(url,headers=headers)
print(r.status_code)

html_xpath = etree.HTML(r.text)
data = html_xpath.xpath('//*[@id="pl_top_realtimehot"]/table/tbody/tr/td[2]')
num = -1

# # 解决存储路径
# time_path = time.strftime('%Y{y}%m{m}%d{d}',time.localtime()).format(y='年', m='月', d='日')
# time_name = time.strftime('%Y{y}%m{m}%d{d}%H{h}',time.localtime()).format(y='年', m='月', d='日',h='点')
# root = "./" + time_path + "/"
# path = root + time_name + '.md'
# if not os.path.exists(root):
#  os.mkdir(root)

# 解决存储路径
time_path = time.strftime('%Y{y}%m{m}%d{d}',time.localtime()).format(y='年', m='月', d='日')
time_name = time.strftime('%Y{y}%m{m}%d{d}%H{h}',time.localtime()).format(y='年', m='月', d='日',h='点')
year_path = time.strftime('%Y{y}',time.localtime()).format(y='年')
month_path = time.strftime('%m{m}',time.localtime()).format(m='月')
day_month = time.strftime('%d{d}',time.localtime()).format(d='日')
all_path = "./" + year_path + '/'+ month_path + '/' + day_month
if not os.path.exists(all_path):
 # 创建多层路径
 os.makedirs(all_path)

# 最终文件存储位置
root = all_path + "/"
path = root + time_name + '.md'
print(path)
# 文件头部信息
with open(path,'a') as f:
 f.write('{} {}\n\n'.format('# ',time_name+'数据'))
f.close()

for tr in (data):
 title = tr.xpath('./a/text()')
 hot_score = tr.xpath('./span/text()')
 
 num += 1

 # 过滤第 0 条
 if num == 0:
  pass
 else:
  with open(path,'a') as f:

   f.write('{} {}、{}\n\n'.format('###',num,title[0]))
   f.write('{} {}\n\n'.format('微博当时热度为:',hot_score[0]))
   
  f.close()

  print(num,title[0],'微博此时的热度为:',hot_score[0])

运行:

运行结束后会在当前文件夹下生成以时间命名的文件夹,并且会生成以具体小时为单位的具体时间命名的 Markdown 文件,如下:

Python爬虫爬取微博热搜保存为 Markdown 文件的源码

查看:

Python爬虫爬取微博热搜保存为 Markdown 文件的源码

到此这篇关于Python爬虫爬取微博热搜保存为 Markdown 文件的文章就介绍到这了,更多相关Python爬虫爬取微博热搜保存内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
深入解析Python中的集合类型操作符
Aug 19 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
python简单线程和协程学习心得(分享)
Jun 14 Python
Python文件读写保存操作的示例代码
Sep 14 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
Python将视频或者动态图gif逐帧保存为图片的方法
Sep 10 Python
python将数组n等分的实例
Dec 02 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
Python 定义只读属性的实现方式
Mar 05 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
python调用摄像头的示例代码
Sep 28 Python
Python爬虫制作翻译程序的示例代码
Feb 22 #Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 22 #Python
sklearn中的交叉验证的实现(Cross-Validation)
Feb 22 #Python
Python爬虫分析微博热搜关键词的实现代码
Feb 22 #Python
anaconda升级sklearn版本的实现方法
Feb 22 #Python
详解Python 中的 defaultdict 数据类型
Feb 22 #Python
python快速安装OpenCV的步骤记录
Feb 22 #Python
You might like
配置PHP使之能同时支持GIF和JPEG
2006/10/09 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
php实现微信发红包功能
2018/07/13 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
对pandas处理json数据的方法详解
2019/02/08 Python
原生python实现knn分类算法
2019/10/24 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
如何将json数据转换为python数据
2020/09/04 Python
django跳转页面传参的实现
2020/09/17 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
中科前程Java笔试题
2016/11/20 面试题
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
建筑设计学生的自我评价
2014/01/16 职场文书
出生公证书样本
2014/04/04 职场文书
宿舍标语大全
2014/06/19 职场文书
教师师德考核自我评价
2014/09/13 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
民事纠纷协议书
2016/03/23 职场文书