资讯专栏INFORMATION COLUMN

使用Scrapy抓取优酷视频列表页(电影/电视)

leoperfect / 627人阅读

摘要:具体代码可参看这里列表页是指端的入口,如电影抓取后数据如下大毛狗何明翰张璇历史万次播放

具体代码可参看Knowsmore

这里列表页是指PC端的入口,如电影

抓取后数据如下:

{
    "link" : "//v.youku.com/v_show/id_XMzMyMzE2MTMxNg==.html",
    "thumb_img" : "http://r1.ykimg.com/051600005AD944F0859B5E040E03BD62",
    "title" : "大毛狗",
    "tag" : [
        "VIP"
    ],
    "actors" : [
        "何明翰",
        "张璇"
    ],
    "play_times" : " 历史 2,236万次播放 "
}
# -*- coding: utf-8 -*-
import scrapy
import re
import json
from scrapy import Selector, Request
from knowsmore.items import YoukuListItem
from ..common import *
from ..model.mongodb import *

class YoukuListSpider(scrapy.Spider):
    name = "youku_list"

    custom_settings = {
        "DOWNLOADER_MIDDLEWARES" : {
        }
    }

    start_urls = [
        "https://list.youku.com/category/show/c_96_s_1_d_4_p_29.html"
    ]

    def parse(self, response):
        GRID_SELECTOR = ".panel .mr1"        
        for grid in response.css(GRID_SELECTOR):
            THUMB_IMG_SELECTOR = ".p-thumb img::attr(_src)"
            LINK_SELECTOR = ".info-list .title a::attr(href)"
            TITLE_SELECTOR = ".info-list .title a::text"
            ACTORS_SELECTOR = ".info-list .actor a::text"
            TAG_SELECTOR = ".p-thumb .p-thumb-tagrt span::text"
            PLAY_TIMES_SELECTOR = ".info-list li:nth-child(3)::text"

            item_thumb_img = grid.css(
                THUMB_IMG_SELECTOR).extract_first()
            item_link = grid.css(
                LINK_SELECTOR).extract_first()
            item_title = grid.css(
                TITLE_SELECTOR).extract_first()
            item_actors = grid.css(
                ACTORS_SELECTOR).extract()
            item_tag = grid.css(
                TAG_SELECTOR).extract()
            item_play_times = grid.css(
                PLAY_TIMES_SELECTOR).extract_first()

            # Build Scrapy Item
            youku_item = YoukuListItem(
                thumb_img = item_thumb_img,
                link =  item_link,
                title = item_title,
                actors = item_actors,
                play_times = item_play_times,
                tag = item_tag
            )

            # Send to Pipelines
            yield youku_item


        NEXT_PAGE_SELECTOR = ".yk-pages .next a::attr(href)"
        next_page = response.css(NEXT_PAGE_SELECTOR).extract_first()
        if next_page is not None:
            print next_page
            yield response.follow(next_page)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42980.html

相关文章

  • 【VIP视频网站项目v1.0.3】基于Nodejs开发的VIP视频网站项目及源码分享

    摘要:在线体验地址源码项目预览主页面登录页面注册页面会员中心电影播放页面电影弹幕功能视频网站项目已经完功能如下当前最新版本增加自动抓取功能,网站数据定期实时更新电影和电视剧数据抓取电影数据信息前端展现电影页面图片的自动抓取下载和展示代码结构调整简 在线体验地址:http://vip.52tech.tech/ GIthub源码:https://github.com/xiugangzha......

    Cympros 评论0 收藏0
  • 爬虫入门

    摘要:通用网络爬虫通用网络爬虫又称全网爬虫,爬取对象从一些种子扩充到整个。为提高工作效率,通用网络爬虫会采取一定的爬取策略。介绍是一个国人编写的强大的网络爬虫系统并带有强大的。 爬虫 简单的说网络爬虫(Web crawler)也叫做网络铲(Web scraper)、网络蜘蛛(Web spider),其行为一般是先爬到对应的网页上,再把需要的信息铲下来。 分类 网络爬虫按照系统结构和实现技术,...

    defcon 评论0 收藏0
  • 爬虫入门

    摘要:通用网络爬虫通用网络爬虫又称全网爬虫,爬取对象从一些种子扩充到整个。为提高工作效率,通用网络爬虫会采取一定的爬取策略。介绍是一个国人编写的强大的网络爬虫系统并带有强大的。 爬虫 简单的说网络爬虫(Web crawler)也叫做网络铲(Web scraper)、网络蜘蛛(Web spider),其行为一般是先爬到对应的网页上,再把需要的信息铲下来。 分类 网络爬虫按照系统结构和实现技术,...

    Invoker 评论0 收藏0
  • Python

    摘要:最近看前端都展开了几场而我大知乎最热语言还没有相关。有关书籍的介绍,大部分截取自是官方介绍。但从开始,标准库为我们提供了模块,它提供了和两个类,实现了对和的进一步抽象,对编写线程池进程池提供了直接的支持。 《流畅的python》阅读笔记 《流畅的python》是一本适合python进阶的书, 里面介绍的基本都是高级的python用法. 对于初学python的人来说, 基础大概也就够用了...

    dailybird 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<