Python爬取V聊视频从信息入库到下载

1.视频url的入库(库和表需要自己去创建代码稍做修改就行)
#!/usr/bin/python # -*- coding: utf-8 -*-

import json
import urllib
import requests
from bj.models import ksVideo
from bj.models import Video

url = "http://v3.vliao3.xyz/v31/smallvideo/one"
headers = {
        'interfaceVersion':'3.1.1',
        'interfaceSource':'android',
        'Content-Type':'application/x-www-form-urlencoded',
        'Content-Length':'67',
        'Host':'v3.vliao3.xyz',
        'Connection':'Keep-Alive',
        'Accept-Encoding':'gzip',
        'User-Agent':'okhttp/3.4.1',
    }


def start():
    download_ks_video(74)

def download_ks_video():
    for i in range(2500,3500):
        data = "userId=440049&userKey=1968f35f6638708142688a33baca48cc&&videoId="+str(i)+"&vid=-1"
        req=requests.post(url=url,data=data,headers=headers).content
        # print(req)
        req_json=json.loads(req)
        video=req_json.get('data')
        if video is None:
            continue
        print(video)
        user_id='440049'
        video_id=video.get('id')
        video_url=video.get('url')
        video_desc=video.get('title')

        Video.objects.get_or_create(
            video_id=video_id,
            defaults={
                'user_id': user_id,
                'video_url': video_url,
                'video_desc': video_desc
            }
        )


    print("下载完成!!")



上图代码中的userId+userKey是隔一段时间会发生变化(所以需要重新抓包查看这里我推荐使用charles去抓包)
userId=440049&userKey=1968f35f6638708142688a33baca48cc


2.对视频进行下载

import os
import requests
from bs4 import BeautifulSoup
import threading
from bj.models import Video
from bj.script import downloadUrl
from bj.script import bjdownloadvideo

def down_video():
    # 獲取數據庫中還沒有被下載的視頻
    videos=Video.objects.filter(is_download=False)[:100]
    if videos is None:
        return


    #path = "/home/facelive/Downloads/videos/"

    # 硬盘路径
    path = "/media/facelive/Elements/videos/"

    if os._exists(path):
        print("-->該pathnot存在!!")
        os.makedirs(path)
    for video in videos :
        video_id=video.video_id
        video_url=video.video_url
        path_url=os.path.join(path,'%s'%(video_id)+".mp4")

        thread=threading.Thread(target=save_video,args=(video_url,path_url))
        thread.start()

        # 修改已經下載的視頻的狀態
        video.is_download = True
        video.save()
        print("视频"+str(video_id)+"已开始下载!!!")
    print("《《《《所有視頻下載线程已经启动!!!!》》》")
# 正式下頻載保存視
def save_video(url,path):
    response=bjdownloadvideo.get_response(url)

    with open(path,'wb') as f:
        f.write(response)


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
使用Python爬取城市所有道路信息入库的步骤可以如下: 1. 安装 Python 爬虫框架,比如 Scrapy,可以使用命令 `pip install scrapy` 进行安装。 2. 编写爬虫代码,在 Scrapy 框架中创建一个爬虫项目,并在相应的爬虫文件中编写爬取城市道路信息的代码。 3. 获取道路信息的网站。可以通过搜索引擎或者具体的城市官方网站查找道路信息相关的网站。 4. 使用 Scrapy 的选择器(Selector)来定位和提取道路信息的元素。可以通过查看网页源代码,使用类似XPath或CSS选择器的语法来定位元素。 5. 编写数据解析代码,将提取到的道路信息数据解析为需要的格式,比如字典或者CSV文件。 6. 定义数据库模型,并使用 Python 的数据库操作包(比如SQLAlchemy)进行数据库的连接和操作。可以将道路信息保存在关系型数据库(如MySQL、PostgreSQL)中,或者其他非关系型数据库(比如MongoDB)中。 7. 在爬虫代码中将解析到的道路信息数据存入数据库,可以使用ORM(对象关系映射)的方式进行数据的插入操作。 8. 运行爬虫代码,使用命令 `scrapy crawl spider_name` 来启动爬虫进行数据抓取和入库操作。 9. 监控爬虫运行状态,并根据需要进行数据的持续更新和维护。 通过以上步骤可以使用Python爬取城市所有道路信息,并将其入库保存在相应的数据库中,方便后续进行数据分析和应用开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值