采集天堂电影数据来看看

简介: 采集天堂电影数据来看看

阅读本文需要2分钟


最近本狗想放松放松, 想了想还是看看几部电影最为可贵, 于是找了大家最为熟悉的网站《电影天堂》去看个究竟。为了更好的去"挑选"电影,本狗就爬取了大几十页的数据。废话不多说:开工啦


1

原理:

构建目标URL:


def page_urls():
    baseurl = 'http://www.ygdy8.net/html/gndy/dyzz/list_23_{}.html'
    for i in range(1, 30):
        url = baseurl.format(i)
        parse_url(url)

只需要改变{}里面的内容就可以实现翻页


爬取电影详情URL:


def parse_url(url):
    response = requests.get(url, headers=headers)
    html = etree.HTML(response.text)
    tables = html.xpath('//table[@class="tbspan"]//a/@href')
    for table_url in tables:
        page_urls = baseurl + table_url


2

需要的模块:


import time
import random
import requests
from lxml import etree
import csv


主程序:(有点长,截取部分)

    def spider(page_urls):
        data = {}
        response = requests.get(page_urls, headers=headers)
        html = etree.HTML(response.content.decode('gbk'))
        title = html.xpath('//div[@class="title_all"]//font[@color="#07519a"]/text()')[0]
        data['名字'] = title
        try:
            images = html.xpath('//div[@id="Zoom"]//img/@src')[1]
        except:
            print("套路深!")
        try:
            posters = html.xpath('//div[@id="Zoom"]//img/@src')[0]
        except:
            print("套路深!!")
        data['海报'] = posters
        # time.sleep(random.randint(1, 2))
        zoom_ = html.xpath('//div[@id="Zoom"]')[0]
        infos = zoom_.xpath('.//text()')
        for info in infos:
            if info.startswith('◎年  代'):
                info1 = info.replace('◎年  代', '').strip()
                data['年代'] = info1
            elif info.startswith('◎产  地'):
                info2 = info.replace('◎产  地', '').strip()
                data['产地'] = info2
            elif info.startswith('◎类  别'):
                info3 = info.replace('◎类  别', '').strip()
                data['类别'] = info3
            elif info.startswith('◎语  言'):
                info4 = info.replace('◎语  言', '').strip()
                data['语言'] = info4
            elif info.startswith('◎上映日期'):
                info5 = info.replace('◎上映日期', '').strip()
                data['上映日期'] = info5
            elif info.startswith('◎豆瓣评分'):
                info6 = info.replace('◎豆瓣评分', '').strip()
                info6 = ''.join(info6.split('/')[:1])
                data['豆瓣评分'] = info6
            elif info.startswith('◎片  长'):
                info7 = info.replace('◎片  长', '').strip()
                data['片长'] = info7


    3

    效果图:



    这样查看电影很方便呀!!!最后本跟根据【评分】【类别】选择了些电影《头号玩家》《江湖儿女》《调音师》,感觉还不错!!!   主要原因还是没钱开会员


    后台回复 【电影】 获取源码

    相关文章
    |
    1月前
    |
    前端开发 测试技术 数据库
    电影网上购票系统设计与实现(论文+系统)_kaic
    电影网上购票系统设计与实现(论文+系统)_kaic
    |
    10月前
    |
    内存技术
    在线版!音乐伴奏提取、变调、调速、查调性……太强大了!
    由于Spleeter是要下载到电脑上运行的,由于电脑系统版本、电脑上的运行库等多方面原因,很多用户私信我说软件运行不了。
    470 0
    |
    11月前
    |
    容器
    借助开源项目,又好又快的实现视频文件”剧情连拍(剧情截图)”功能
    借助开源项目,又好又快的实现视频文件”剧情连拍(剧情截图)”功能
    659 0
    借助开源项目,又好又快的实现视频文件”剧情连拍(剧情截图)”功能
    |
    机器学习/深度学习 存储 人工智能
    【OpenVI-视觉评价系列之MOS评价实战篇】手机存储不够用,清理照片太痛苦?MOS评价帮你挑选“垃圾”照片
    MOS(Mean Opinion Score)是一种常用的主观质量评价方法,常用于视频、图像等多媒体领域中的质量评价。MOS视觉评价通常是通过让受试者观看视频/图像,对视频的清晰度、锐度、颜色饱和度、运动模糊、噪声等方面进行评价。然而,MOS视觉评价也存在一些局限,例如需要大量的受试者,评估时间较长等。因此,近年来,研究者们也开始探索使用客观评价方法来替代或补充MOS视觉评价。
    371 2
    【OpenVI-视觉评价系列之MOS评价实战篇】手机存储不够用,清理照片太痛苦?MOS评价帮你挑选“垃圾”照片
    |
    数据采集 Web App开发 存储
    什么是内容农场-充斥着劣质信息的采集站
    这个充满劣质信息的收集站有一个特殊的名字——内容农场,Wikipedia有一个特殊的条目来介绍它
    352 0
    |
    数据采集 Python
    Python爬虫系列15-采集梨视频等所有栏目中视频数据
    “人生之路是不可逆的,任何人都不可能重新来过、重新选择。” 生活中,每个人都在用不同的方式在成长在成熟,谁也不比谁更轻松。
    Python爬虫系列15-采集梨视频等所有栏目中视频数据
    |
    数据采集 Python
    Python爬虫系列18-采集电视剧详情 比如:导演、年份、类型、短评等数据
    身材不好就去锻炼,没钱就努力去赚,别把窘迫困境迁怒于别人,你唯一可以抱怨的就是不够努力的自己。 向往别人看过的风景,但是到了周末,却抱着手机在家宅过一个又一个周末。所以当自己想到的一些东西就赶紧行动起来,羡慕别人不如行动自己。 如果只是一味的去羡慕别人,从来都不去让自己行动起来,那么你永远都会在见证别人的成功,在见证别人的成长。
    Python爬虫系列18-采集电视剧详情 比如:导演、年份、类型、短评等数据
    |
    数据采集 Python
    Python爬虫系列16-采集网易音乐百万好听的歌曲进行批量下载
    业精于勤而荒于嬉,行成于思而毁于随。 吃得苦中苦,方为人上人,受得累中累,方成富贵人。完全赞同
    Python爬虫系列16-采集网易音乐百万好听的歌曲进行批量下载
    【火车头采集教程】轻而易举学会火车头采集(附带采集案例)(2)
    【火车头采集教程】轻而易举学会火车头采集(附带采集案例)
    100 0
    【火车头采集教程】轻而易举学会火车头采集(附带采集案例)(2)
    |
    数据库 Python
    【火车头采集教程】轻而易举学会火车头采集(附带采集案例)(1)
    【火车头采集教程】轻而易举学会火车头采集(附带采集案例)
    465 0
    【火车头采集教程】轻而易举学会火车头采集(附带采集案例)(1)