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 fileinput模块使用实例
May 28 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
pyqt5实现登录界面的模板
May 30 Python
我喜欢你 抖音表白程序python版
Apr 07 Python
Django实现跨域的2种方法
Jul 31 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
Feb 14 Python
Python 爬取必应壁纸的实例讲解
Feb 24 Python
Python定义一个函数的方法
Jun 15 Python
python绘制趋势图的示例
Sep 17 Python
如何解决.cuda()加载用时很长的问题
May 24 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数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
php swoft框架实例用法
2020/12/22 PHP
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
js常见遍历操作小结
2019/06/06 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
python 三元运算符使用解析
2019/09/16 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
运动会稿件100字
2014/02/21 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
初一年级组工作总结
2015/08/12 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书