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使用wxpython开发简单记事本的方法
May 20 Python
python去除字符串中的换行符
Oct 11 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
Mar 14 Python
python实现自主查询实时天气
Jun 22 Python
python的concat等多种用法详解
Nov 28 Python
python 自动批量打开网页的示例
Feb 21 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
Jun 19 Python
Python Pandas 箱线图的实现
Jul 23 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
利用python 读写csv文件
Sep 10 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
Bootstrap基本组件学习笔记之进度条(15)
2016/12/08 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
Vue中computed及watch区别实例解析
2020/08/01 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
分享6个隐藏的python功能
2017/12/07 Python
微信跳一跳python代码实现
2018/01/05 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
意大利团购网站:Groupon意大利
2016/10/11 全球购物
人事部经理岗位职责
2014/03/07 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
表彰大会策划方案
2014/05/13 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
赔偿协议书
2015/01/27 职场文书