b站动漫_python爬b站视频

b站动漫_python爬b站视频。。闲来无事,爬了一下我最爱的B站~~~卒首先进入B站的番剧索引页ps:以前经常浏览这个索引页找动漫看,所以熟练的操作~滑稽翻页发现url链接并没有改变,用谷歌开发者工具network发现加载了XHR文件并返回json格式的响应要对其进行翻页处理,观察一下querystring的规律,发现那么多个参数只有page这个参数是变化的所以接下来都很好做了~嘻嘻items.pyimp…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

。。。闲来无事,爬了一下我最爱的B站~~~卒
首先进入B站的番剧索引页
ps:以前经常浏览这个索引页找动漫看,所以熟练的操作~滑稽
在这里插入图片描述
翻页发现url链接并没有改变,用谷歌开发者工具network发现加载了XHR文件并返回json格式的响应
在这里插入图片描述
放到atom里看下数据是咋样的
在这里插入图片描述
要对其进行翻页处理,观察一下query string的规律,发现那么多个参数只有page这个参数是变化的
在这里插入图片描述
所以接下来都很好做了~嘻嘻
items.py

import scrapy
from scrapy import Field

class BilibiliItem(scrapy.Item):

    title = Field()
    cover = Field()
    sum_index = Field()
    is_finish = Field()
    link = Field()
    follow = Field()
    plays = Field()
    score = Field()
    _id = Field()
    

bzhan.py

import scrapy
import demjson #这个库要pip一哈
from scrapy.selector import Selector
from bilibili.items import BilibiliItem
from random import randint

class BzhanSpider(scrapy.Spider):
    name = 'bzhan'
    allowed_domains = ['bilibili.com']
    start_urls = ['https://bangumi.bilibili.com/media/web_api/search/result?season_version=-1&area=-1&is_finish=-1&copyright=-1&season_status=-1&season_month=-1&pub_date=-1&style_id=-1&order=3&st=1&sort=0&page=1&season_type=1&pagesize=20']

    def parse(self, response):
        json_content = demjson.decode(response.body)
        datas = json_content["result"]["data"]
        item = BilibiliItem()
        for data in datas:
            cover = data['cover']
            sum_index = data['index_show']
            is_finish = data['is_finish']
            is_finish = '已完结' if is_finish == 1 else '未完结'
            link = data['link']
            follow = data['order']['follow']
            plays = data['order']['play']

            try:
                score = data['order']['score']
            except:
                score = '未知'
            title = data['title']

            item['_id'] = title
            item['cover'] = cover
            item['sum_index'] = sum_index
            item['is_finish'] = is_finish
            item['link'] = link
            item['follow'] = follow
            item['plays'] = plays
            item['score'] = score
            item['title'] = title

            yield item
        urls = ['https://bangumi.bilibili.com/media/web_api/search/result?season_version=-1&area=-1&is_finish=-1&copyright=-1&season_status=-1&season_month=-1&pub_date=-1&style_id=-1&order=3&st=1&sort=0&page={0}&season_type=1&pagesize=20'.format(k) for k in range(2,156)]
        for url in urls:
            request = scrapy.Request(url,callback=self.parse)
            yield request
            

利用python对象字典的方式进行解析。。不难

piplines.py

import pymongo

class BilibiliPipeline(object):
    def process_item(self, item, spider):
        client = pymongo.MongoClient('localhost', 27017)
        mydb = client['mydb']
        bilibili = mydb['bilibili']
        bilibili.insert_one(item)
        print(item)
        return item
        

settings.py略。。。。。。

结果可以爬取到三千多个数据
在这里插入图片描述
心疼我的b站一秒。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172278.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • error:opening registry key_ros初始化

    error:opening registry key_ros初始化运行sudoaptupdate的时候出现下面的错误:Err:11http://packages.ros.org/ros2/ubuntuxenialInReleaseThefollowingsignaturescouldn’tbeverifiedb…

    2022年9月25日
    2
  • cmd下出现找不到或无法加载主类的问题

    cmd下出现找不到或无法加载主类的问题之前安装过 jdk 安装另一个版本的 jdk 配置环境后出现了找不到或无法加载主类的问题 经过相关资料查询 整理后有如下情况 其实这些情况都不是我遇到的 我遇到的写在最后 1 环境变量配置错误 如果 java 和 javac 指定能够顺利运行 cmd 中没有出现无法识别相关指令之类的提示 说明 path 路径配置正确 此时 运行 javac 后成功生成 class 文件 运行 java 类名时出现提示找不到或无法加载主类 说明 classpath 路径错误 classpath 是运行时搜索类的路径 包括 jdk 中的类的路径

    2025年12月7日
    4
  • pycharm2021激活码【2021.7最新】

    (pycharm2021激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~M…

    2022年3月21日
    70
  • 雨量传感器接线图_雨量感应器在哪里

    雨量传感器接线图_雨量感应器在哪里可提供默认的通信协议(串口TTL,38400,8N1);可接受客户提供的LIN协议,另外收开发费用。—————————————-默认是串口协议,TTL电平,不是LIN协议。提供默认的通信协议,可以通过USB串口读取雨感信息。默认协议如下:免费提供上位机软件,可以读取该串口协议:(购买USB+传感器可以直接使用)—————————————–…

    2022年9月28日
    2
  • 对称加密算法之分组加密的六种工作模式(ECB、CBC、PCBC、CFB、OFB、CTR)

    对称加密算法之分组加密的六种工作模式(ECB、CBC、PCBC、CFB、OFB、CTR)

    2021年10月5日
    103
  • WebService接口的生成和调用(WebService接口)

    WebService接口的生成和调用(WebService接口)目录一:WebService的服务端发布1:发布web程序服务端发布2:本地发布二:Webservice客户端调用:1:本地生成代码,直接调用:2、利用dos命令生成代码,和第一种基本一致3:利用apache的AXIS直接调用远程的webservice4:service编程实现调用5:Ht……

    2022年7月12日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号