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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
Python运算符重载详解及实例代码
Mar 07 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
python机器学习实战之树回归详解
Dec 20 Python
python3利用tcp实现文件夹远程传输
Jul 28 Python
wxPython的安装与使用教程
Aug 31 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
python科学计算之narray对象用法
Nov 25 Python
Python调用C语言程序方法解析
Jul 07 Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 Python
Python pyecharts绘制条形图详解
Apr 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
PHP 引用文件技巧
2010/03/02 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
基于jquery的模态div层弹出效果
2010/08/21 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
django 修改server端口号的方法
2018/05/14 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
Android interview questions
2016/12/25 面试题
税务专业毕业生自荐信
2013/11/10 职场文书
进口业务员岗位职责
2014/04/06 职场文书
村干部培训方案
2014/05/02 职场文书
写给同事的离职感言
2015/08/04 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS