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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ASP.NET报错:failed due to the following error: 8000401a.「建议收藏」

    ASP.NET报错:failed due to the following error: 8000401a.「建议收藏」出现错误的原因是:配置标识不正确,系统无法开始服务器进程解决方案:1.开始-dcomcnfg,启动组件服务。2.找到MicrosoftExcelApplication、MicrosoftOfficePowerPoint幻灯片、MicrosoftOfficeWord97-2003文档,-属性-安全-自定义,添加启动和激活权限、访问权限,并添加NETWORKSER…

    2022年7月25日
    6
  • idea 设置黑色或白色背景以及图片背景

    idea 设置黑色或白色背景以及图片背景idea编辑软件在怎么设置黑色或者白色背景点击File–>setting(或者Ctrl+Alt+S)–>Editor–> Color scheme–>General 选择好风格之后,Apply–>OK 最后弹框中点击Yes即可。————————————————–…

    2022年6月13日
    40
  • 大数据平台的元数据管理

    大数据平台的元数据管理【概念解释】1,大数据平台——是指服务于大数据计算或存储的平台,包括大数据的计算集群(hive、spark、flink、storm等等)和存储集群(如hadoop、hbase等等)。2,大数据平台涉及的元数据——由大数据作业的业务逻辑直接读写处理的业务数据,都不是元数据,除此之外的数据都是元数据。例如数据表的schema信息、任务之间的血缘关系、任务的权限映射关系、数据的业务属性、数据占用的磁…

    2022年5月8日
    55
  • Wireshark零基础使用教程(超详细)

    Wireshark零基础使用教程(超详细)Wireshark安装入门,Wireshark工具使用教程,Wireshark过滤操作

    2022年6月17日
    120
  • oracle sequence用法_oracle赋值

    oracle sequence用法_oracle赋值创建sequence:createsequenceseq_testincrementby1startwith1noMaxValuenoCyclecache10;createsequenceseq_test2minvalue1maxvalue21startwith1incrementby1cache20cycleorder;minValue:指定序列最小值。maxV…

    2022年10月19日
    0
  • C++ vector初始化_vector>初始化

    C++ vector初始化_vector>初始化#include<iostream>#include<string>#include<vector>#include<deque>#include<list>#include<forward_list>#include<string>#include<array>usingnamespacestd;#defineLENGTH10typedefintTYPE;.

    2022年9月13日
    0

发表回复

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

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