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 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
Python线程创建和终止实例代码
Jan 20 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
python实现字符串中字符分类及个数统计
Sep 28 Python
python 计算数据偏差和峰度的方法
Jun 29 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
python提取照片坐标信息的实例代码
Aug 14 Python
通过python连接Linux命令行代码实例
Feb 18 Python
python查看矩阵的行列号以及维数方式
May 22 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
Jun 04 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 Python
python 如何在list中找Topk的数值和索引
May 20 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 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
限制复选框最多选择项的实现代码
2016/05/30 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
Python使用贪婪算法解决问题
2019/10/22 Python
python数据预处理方式 :数据降维
2020/02/24 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
婚假请假条格式及范文
2014/04/10 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
停电调休通知
2015/04/16 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
给校长的建议书范文
2015/09/14 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Linux系统下安装PHP7.3版本
2021/06/26 PHP
vscode中使用npm安装babel的方法
2021/08/02 Javascript