把树莓派变成FTP服务器

所需工具:vsftpd  一个极小的FTP服务器

 

安装此工具

sudo apt-get install vsftpd

 

启动服务

sudo service vsftpd start

 

关于配置文件:

位置 : 

  1. /etc/vsftpd.conf (主配置文件)
  2. /etc/ftpusers  (被禁止登录FTP的用户文件)

 

  • anonymous_enable   是否允许匿名登录
  • anon_other_write_enable 是否允许匿名用户拥有除 写入 之外的权限。
  • anon_upload_enable 是否允许匿名用户上传数据
  • anon_mkdir_write_enable  是否允许匿名用户创建目录
  • anon_max_rate 设置下载速度,0为不限制 单位为byte

 

修改配置文件后记得重启服务

service vsftpd restart

 

关于FTP登录:

用户就是Linux用户

在树莓派Linux中

用户名为:pi 密码为:raspberry

 

一个出色的FTP工具推荐:

FileZilla Client

现在(官网)下载:https://filezilla-project.org/download.php

用简单的爬虫获取PandaTV的房间API

使用到的模块有: requests,json

使用chrome的开发者工具抓取http包 在filter中过滤 就能找到

截图1

便能发现请求地址为:

http://www.panda.tv/api_room?roomid=(房间ID)&pub_key=&_=(时间戳)

或直接使用

http://www.panda.tv/api_room?roomid=(房间ID)

#run with py3
import requests as req
from json import loads
room_id = 11111 #房间ID
main_url = "http://www.panda.tv/api_room?roomid={room_id}".format(room_id=room_id)
infor_dict = loads(req.get(main_url).text) #获取json并用loads转换为dict

提供的API使用特别方便并直观 就不多介绍了

其中比较有趣的是直播视频流的位置

2

其实urlFilename位于刚刚获取的API中videoinfo的room_key

于是就能构造出视频流的url:

real_video_address = 'http://pl11.live.panda.tv/live_panda/{room_key}.flv'.format(room_key=infor_dict['data']['videoinfo']['room_key'])

所以 可以使用requests中的get方法(设置stream参数为True) 并利用文件操作来实时保存直播视频流到本地

with open('video.flv','wb') as f:
    res = req.get(real_video_address,stream=True)
    for i in res.iter_content(chunk_size=1024):  #iter_content用于迭代流 chunk_size参数为每次迭代包的大小
        f.write(i)

注:不同房间的服务器地址和所需参数不同 请自行测试