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 subprocess模块学习总结
Mar 13 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
python学生信息管理系统(完整版)
Apr 05 Python
把pandas转换int型为str型的方法
Jan 29 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 Python
python tqdm实现进度条的示例代码
Nov 10 Python
pyqt5打包成exe可执行文件的方法
May 14 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通过修改header强制图片下载的方法
2015/03/24 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
Node.js模块加载详解
2014/08/16 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
Python for循环生成列表的实例
2018/06/15 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
在python中pandas的series合并方法
2018/11/12 Python
Python缓存技术实现过程详解
2019/09/25 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
试用期转正员工自我评价
2014/09/18 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
新员工入职感言范文!
2019/07/04 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
SQL SERVER中的流程控制语句
2022/05/25 SQL Server
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers