由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个“段友”的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不是打广告的,没收广告费的)

然后呢,看到上面,确实好多段友在上面,于是乎,我就想爬取他们的图片和小视频,就有了这篇文章的主题:

其实吧,用Python爬取网站数据是最基础的东西,也不难,但是我还想分享给大家,一起学习和交流。

爬取这些网站里的数据主要用的模块是bs4、requests以及os,都是常用模块

大概思路就是通过requests模块请求网页html数据,然后通过bs4模块下的BeautifulSoup分析请求的网页,然后通过css查找器查找内涵段子的图片以及小视频的地址,主要实现代码如下:

def download_file(web_url):

"""获取资源的url"""

# 下载网页

print('正在下载网页: %s...' % web_url)

result = requests.get(web_url)

soup = bs4.BeautifulSoup(result.text, "html.parser")

# 查找图片资源

img_list = soup.select('.vpic_wrap img')

if img_list == []:

print('未发现图片资源!')

else:

# 找到资源,开始写入

for img_info in img_list:

file_url = img_info.get('bpic')

write_file(file_url, 1)

# 查找视频资源

video_list = soup.select('.threadlist_video a')

if video_list == []:

print('未发现视频资源!')

else:

# 找到资源,开始写入

for video_info in video_list:

file_url = video_info.get('data-video')

write_file(file_url, 2)

print('下载资源结束:', web_url)

next_link = soup.select('#frs_list_pager .next')

if next_link == []:

print('下载资料结束!')

else:

url = next_link[0].get('href')

download_file('https:' + url)

得到图片以及视频的地址之后,肯定还不够,还得把这些资源写入到本地,方式是通过二进制的方式来读取远程文件资源,然后分类写入到本地,实现的主要代码如下:

def write_file(file_url, file_type):

"""写入文件"""

res = requests.get(file_url)

res.raise_for_status()

# 文件类型分文件夹写入

if file_type == 1:

file_folder = 'nhdz\\jpg'

elif file_type == 2:

file_folder = 'nhdz\\mp4'

else:

file_folder = 'nhdz\\other'

folder = os.path.exists(file_folder)

# 文件夹不存在,则创建文件夹

if not folder:

os.makedirs(file_folder)

# 打开文件资源,并写入

file_name = os.path.basename(file_url)

str_index = file_name.find('?')

if str_index > 0:

file_name = file_name[:str_index]

file_path = os.path.join(file_folder, file_name)

print('正在写入资源文件:', file_path)

image_file = open(file_path, 'wb')

for chunk in res.iter_content(100000):

image_file.write(chunk)

image_file.close()

print('写入完成!')

最后,再奉上完整的代码吧。要不然,会被人说的,说话说一半,说福利,也不给全,这就太不够意思了。客官别急,马上奉上……

#!/usr/bin/env python

# -*- coding: utf-8 -*-

"""

爬取百度贴吧,段友之家的图片和视频

author: cuizy

time:2018-05-19

"""

import requests

import bs4

import os

def write_file(file_url, file_type):

"""写入文件"""

res = requests.get(file_url)

res.raise_for_status()

# 文件类型分文件夹写入

if file_type == 1:

file_folder = 'nhdz\\jpg'

elif file_type == 2:

file_folder = 'nhdz\\mp4'

else:

file_folder = 'nhdz\\other'

folder = os.path.exists(file_folder)

# 文件夹不存在,则创建文件夹

if not folder:

os.makedirs(file_folder)

# 打开文件资源,并写入

file_name = os.path.basename(file_url)

str_index = file_name.find('?')

if str_index > 0:

file_name = file_name[:str_index]

file_path = os.path.join(file_folder, file_name)

print('正在写入资源文件:', file_path)

image_file = open(file_path, 'wb')

for chunk in res.iter_content(100000):

image_file.write(chunk)

image_file.close()

print('写入完成!')

def download_file(web_url):

"""获取资源的url"""

# 下载网页

print('正在下载网页: %s...' % web_url)

result = requests.get(web_url)

soup = bs4.BeautifulSoup(result.text, "html.parser")

# 查找图片资源

img_list = soup.select('.vpic_wrap img')

if img_list == []:

print('未发现图片资源!')

else:

# 找到资源,开始写入

for img_info in img_list:

file_url = img_info.get('bpic')

write_file(file_url, 1)

# 查找视频资源

video_list = soup.select('.threadlist_video a')

if video_list == []:

print('未发现视频资源!')

else:

# 找到资源,开始写入

for video_info in video_list:

file_url = video_info.get('data-video')

write_file(file_url, 2)

print('下载资源结束:', web_url)

next_link = soup.select('#frs_list_pager .next')

if next_link == []:

print('下载资料结束!')

else:

url = next_link[0].get('href')

download_file('https:' + url)

# 主程序入口

if __name__ == '__main__':

web_url = 'https://tieba.baidu.com/f?ie=utf-8&kw=段友之家'

download_file(web_url)

python 福利吧_段友福利:Python爬取段友之家贴吧图片和小视频相关推荐

  1. 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)

    由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...

  2. python爱心代码_百度搜索指数的爬取方法及代码

    最近几年经常在各平台看到有关「搜索指数动态排行」的视频,比如「青春有你2」决赛前一周,我在B站上传了一段「青你2」和「创造营2020」的人气选手指数动态榜的视频: 「青春有你2」VS「创造营2020」 ...

  3. python 游戏大作_使用requests和beautifulsoup爬取3DM单机大作排行榜

    支持正版,从我做起! 最近发售的游戏不少,刚好又在学习爬虫,于是就灵光一闪去3DM爬了个单机大作排行榜TOP200,过程代码结果如下. 首先,我们需要知道我们要爬取哪些信息,看到排行榜里的游戏项可以确 ...

  4. Python爬虫:最牛逼的 selenium爬取方式!

    Python爬虫:最牛逼的 selenium爬取方式! 作为一个男人 在最高光的时刻 这是小编准备的python爬虫学习资料,加群:700341555即可免费获取! Python爬虫:最牛逼的 sel ...

  5. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  6. 查看Python的版本_查看当前安装Python的版本

    一.查看Python的版本_查看当前安装Python的版本 具体方法: 首先按[win+r]组合键打开运行: 然后输入cmd,点击[确定]: 最后执行[python --version]命令即可. 特 ...

  7. python爬表情包_教你用Python来爬取表情包网站的所有表情图片

    教你用Python来爬取表情包网站的所有表情图片 配置环境 安装Python 开发环境 3X系列 win + R 打开运行,输入cmd,输入python,进行验证是否安装Python win + R ...

  8. python伪装浏览器爬取网页图片_【IT专家】python 分别用python2和python3伪装浏览器爬取网页内容...

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 分别用 python2 和 python3 伪装浏览器爬取网页内容 2017/07/06 1 python 网页抓取功能非常强大,使 ...

  9. 讲python的东哥_小伙子不讲武德,竟用Python爬取了B站上1.4万条马老师视频数据来分析...

    看到标题, 啪的一下你就进来了吧! 如果有经常刷B站的小伙伴,肯定都知道B站鬼畜现在的顶流是谁? 印度:没错正是在下 那必须是当代大师浑元形意太极拳掌门人「马保国」先生啊! 实话讲,马保国走进大家视野 ...

最新文章

  1. Laravel7使用Auth进行用户认证
  2. 征途单机版场景服务器端口被占用,模拟城市5解决端口被占用的方法
  3. linux c 编译错误 conflicting types for 的解决办法
  4. python管道符_Python实现处理管道的方法
  5. python中画圆的代码_Python使用matplotlib绘制圆形代码实例
  6. python网站服务器好麻烦_python写的网站,云服务器经常无法访问
  7. 制度汇编格式怎么生成目录_规章制度编写规范
  8. SpringBoot中如何优雅的使用拦截器
  9. struts2学习笔记(一):配置struts2开发环境
  10. 一次CDN源站负载高的问题排查及解决
  11. 水电图纸——电气系统识图-3.4
  12. MQTT 消息通信工具使用
  13. (批处理)如何通过Python或批处理指令删除指定文件夹?
  14. Dukto 文件传输软件(推荐)
  15. C++中类的三种继承方式public(公有继承)、protected(保护继承)、private(私有继承)之间的差别(附思维导图)
  16. GDI+ 画路径(消除锯齿的效果很不错)
  17. abp 链接本地mysql_ABP Vnext使用mysql数据库
  18. 【多传感融合】优达学城多传感融合学习笔记(二)——将激光雷达点云俯视图映射到二维图像
  19. 常用眼底图像数据集简介及下载--糖尿病视网膜病变 EyePacs,APTOS2019,STARE数据集
  20. 业务需求近期准备深度学习下SpringCloud为加深印象提高学习效果故做此笔记以备后面复习查看之用

热门文章

  1. 直播平台开发中解决iOS 14 兼容问题和静默推送
  2. 《科技日报》:神州控股、神州信息、神州数码集团携手合力打造 “神州信创云”正式启航
  3. HDMI Trans (FPGA)介绍及解析 (二)串并转换
  4. 【Galois系统】用于图形分析的轻量级基础架构
  5. 美国 计算机与艺术 专业,美国加州大学圣地亚哥分校计算机与艺术专业.pdf
  6. EXCEL表格内部换行
  7. ORA-00937: 不是单组分组函数
  8. MacOS开发-用命令行压缩文件
  9. 广州科二化龙考场_广州化龙科目二?
  10. H5 移动端富文本编辑器