b站动漫_python爬b站视频

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


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

相关推荐

  • 人生就是一场康波「建议收藏」

    人生就是一场康波「建议收藏」理论创建人–周金涛2016年3月16日,中信建投首席经济学家周金涛先生参加由上海清算所等举办的第30期清算所沙龙——“2016年债务融资工具专题”活动。在沙龙活动中,周期天王周金涛先生阐述了康波经济周期理论对宏观经济走势的研判,以下是演讲实录。60年的经济周期:人生有三次财富机会重要经济周期理论开创者是两个,第一个康波周期,实际上它是全球经济运动的决定力量,也是在座各…

    2022年10月22日
  • MySQL和SQLyog安装配置教程

    MySQL和SQLyog安装配置教程文章目录1.MySQL和配套SQLyog压缩包2.MySQL的安装配置3.SQLyog(小海豚)安装4.最后成功样子5.前期练习可能会需要的脚本需要的可以下载:1.MySQL和配套SQLyog压缩包 百度网盘资源链接:链接:https://pan.baidu.com/s/15r2rmmfzFV8oB5DgdbgwiQ 提取码:3s5u2.MySQL的安装配置可参考文章1.解压压缩包后:复制bin文件的路径2.以管理员身份打开命令提示符进入刚复制的bin文件目录然后按步骤安装MyS

    2022年5月28日
  • plsql 查询到别的用户下面的表

    plsql 查询到别的用户下面的表

    2021年9月1日
  • nginx作为反向代理的特性_ssh 反向代理

    nginx作为反向代理的特性_ssh 反向代理文章目录问题描述解决方案sub_filter方案使用重定向单独域名访问问题描述现在的企业服务,往往不是单体的,同时可能涉及中间件的访问如dubbo、solr、mq等。对于中间件的监控页面访问,如果直接暴露在公网,肯定这安全。需发对中间件访问进行安全加固,方法主要有:(1)限制使用IP白名单访问。(2)安全密码访问,不使用简单密码,对于没有密码的,可以使用basic认证,强密码访问。(3)…

    2022年9月17日
  • html做一个登录注册页面_html5用户注册表单

    html做一个登录注册页面_html5用户注册表单一个简易登录表单的实现,包括用户名、密码、验证码;验证码使用canvas绘制,随机生成。

    2022年8月11日
  • hdfs的安全模式

    hdfs的安全模式hdfs的安全模式

    2022年4月23日

发表回复

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

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