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和GO语言实现的消息摘要算法示例
Mar 10 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
pycharm安装图文教程
May 02 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
python numpy 矩阵堆叠实例
Jan 17 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
Python使用tkinter实现摇骰子小游戏功能的代码
Jul 02 Python
pytorch中的numel函数用法说明
May 13 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
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php使用codebase生成随机数
2014/03/25 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
php中如何执行linux命令详解
2018/11/06 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
Python实现的Kmeans++算法实例
2014/04/26 Python
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Python中实现结构相似的函数调用方法
2015/03/10 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
Python Series从0开始索引的方法
2018/11/06 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
Python类super()及私有属性原理解析
2020/06/15 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
python集合的新增元素方法整理
2020/12/07 Python
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
大学生工作推荐信范文
2013/12/02 职场文书
合作协议书模板2014
2014/09/26 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
给朋友的赠语
2015/06/23 职场文书
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技
Python经常使用的一些内置函数
2022/04/11 Python