豆瓣250爬虫代码

爬虫豆瓣top250 爬虫豆瓣top250前言一.爬虫是什么二.爬取豆瓣的原因三.爬虫项目步骤1.准备工具2.学习python的相关知识3.爬虫过程讲析四.成果展示五.代码展示 前言 ​ 随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性,为了解决上述问题,定向抓取相关网 阅读详情
#!/usr/bin/python3
# -*- coding:utf-8 -*-
# author: https://blog.youkuaiyun.com/zhongqi2513


# ====================================================
# 内容描述: 爬取豆瓣Top250电影
# ====================================================


from urllib.request import urlopen
from bs4 import BeautifulSoup


movie_url = []              ## 存储电影URL
movie_name = []             ## 存储电影的名称
movie_other = []            ## 存储电影的别名
playable_list = []          ## 是否可播放


daoyan_list = []            ## 存储导演
zhuyan_list = []            ## 存储主演
year_list = []              ## 存储电影上映年份
district_list = []          ## 存储地区
type_list = []              ## 存储电影类型


rating_list = []            ## 存储分数
count_list = []             ## 抓取评论数


quote_list = []             ## 存储核心宗旨


## 抓取一页数据, 数据都存放在上面这些列表中
def get_one_page(url):
    response = urlopen(url)
    bs = BeautifulSoup(response, "html.parser")


    headdiv25 = bs.select("div.hd")
    for div in headdiv25:
        ## 抓取电影的名称
        titles = div.select("span.title")
        title = "".join([t.text for t in titles])
        movie_name.append(title.replace("\xa0", ""))
        ## 抓取电影别名
        others = div.select("span.other")
        other = "".join([o.text for o in others])
        movie_other.append(other.replace("\xa0", "").replace(" ", "").strip("/"))
        ## 抓取是否可播放
        plays = div.select("span.playable")
        play = "".join([o.text for o in plays])
        playable_list.append(play)
        ## 抓取电影 URL
        url_a = div.select("a")
        url = url_a[0].get("href")
        movie_url.append(url)


    bodydiv25 = bs.select("div.info div.bd")
    for div in bodydiv25:
        ps = div.select("p")
        body = ps[0].text.strip().replace("\n", "")


        twocontent = body.split("               ")


        ## 前半部分:导演和主演解析
        threecontent = twocontent[0].split(":")
        if len(threecontent) == 3:
            daoyan_list.append(threecontent[1].strip("主演 ").replace("\xa0", ""))
            zhuyan_list.append(threecontent[2].strip().replace("\xa0", ""))
        else:
            daoyan_list.append("~")
            zhuyan_list.append("~")


        ## 后半部分:年份,地区和类型解析
        if len(twocontent) <= 1:
            year_list.append("~")
            district_list.append("~")
            type_list.append("~")
        else:
            # print(twocontent[1].strip().replace("\xa0", ""))
            right_three_content = twocontent[1].strip().replace("\xa0", "").split("/")
            year_list.append(right_three_content[0])
            district_list.append(right_three_content[1])
            type_list.append(right_three_content[2])


        ## 抓取电影核心思想
        quote_span = div.select("p.quote span")
        if len(quote_span) != 0:
            quote_list.append(quote_span[0].text)
        else:
            quote_list.append("")


    stardiv25 = bs.select("div.star")
    for star in stardiv25:


        ## 抓取评分
        rating_span25 = star.select("span.rating_num")
        rating_list.append(rating_span25[0].text)


        ## 抓取评论数
        count_span25 = star.select("span")
        count_list.append(count_span25[3].text.strip("人评价"))






## 抓取整个豆瓣电影Top250的函数定义
def get_douban_top250_all():
    ## 每次抓取一页数据
    for x in range(1, 11):
        start = (x-1) * 25
        url = "https://movie.douban.com/top250?start={0}&filter=".format(start)
        get_one_page(url)
        print("抓取第  {0}  页成功".format(x))




## 调度函数执行抓取
get_douban_top250_all()
# print(len(year_list))




"""
建表语句:
CREATE TABLE `douban_movie250` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `url` varchar(255) DEFAULT NULL,
  `moviename` varchar(255) DEFAULT NULL,
  `nickname` varchar(255) DEFAULT NULL,
  `playable` varchar(255) DEFAULT NULL,
  `daoyan` varchar(255) DEFAULT NULL,
  `zhuyan` varchar(255) DEFAULT NULL,
  `year` varchar(255) DEFAULT NULL,
  `district` varchar(255) DEFAULT NULL,
  `type` varchar(255) DEFAULT NULL,
  `rate` varchar(255) DEFAULT NULL,
  `count` int(11) DEFAULT NULL,
  `quote` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


"""


print([len(movie_url), len(movie_name), len(movie_other), len(playable_list), len(daoyan_list), len(zhuyan_list),
       len(year_list), len(district_list), len(type_list), len(rating_list), len(count_list), len(quote_list)])






import pymysql


conn = pymysql.connect(host="hadoop02", port=3306, user="root", password="root", database="bigdata", charset="utf8")
cusor = conn.cursor()
sql = "insert into douban_movie250 (url, moviename, nickname, playable, daoyan, zhuyan, year, district, type, rate, count, quote) values " \
      "(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"


## 输出结果数据
for index in range(len(movie_url)):
    # print(movie_url[index], movie_name[index], movie_other[index], playable_list[index], body_list[index])
    # print(body_list[index])
    # print(daoyan_list[index], zhuyan_list[index], sep="****************")
    # print(year_list[index], district_list[index], type_list[index], rating_list[index], count_list[index], sep="*********************")
    # print(quote_list[index])


    record = [movie_url[index], movie_name[index], movie_other[index], playable_list[index], daoyan_list[index], zhuyan_list[index],
                   year_list[index], district_list[index], type_list[index], rating_list[index], count_list[index], quote_list[index]]
    cusor.execute(sql, record)


conn.commit()
cusor.close()
conn.close()
Python 爬虫之爬豆瓣TOP250电影 爬虫超详细讲解 零基础入门 先看后赞,养成习惯!!! 点赞收藏,人生辉煌!!! 讲解我们的爬虫之前,先概述关于爬虫的简单概念(毕竟是零基础教程) 爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。 为什么我们要使用爬虫 互联网大数据时代,给予我们的是生活的便利以及海量数据爆炸式的出现在网络中。 过去,我们通过书籍、报纸、电视、广播或许信息,这些信息数量有限,且... 阅读详情

相关推荐

python电影网络爬虫代码_Python爬虫——爬取豆瓣电影Top250代码实例

利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Excel表中。基本上爬取结果还是挺好的。具体代码如下:#!/usr/bin/python#-*- coding: utf-8 -*-import sysreload(sys)sys.setde...

weixin_39717318的博客 2773

python-爬虫项目<实现爬取豆瓣TOP250并保存于Excel和数据库>

python-爬虫项目<实现爬取豆瓣TOP250并保存于Excel和数据库>前言一、程序运行结果二、程序源码三、爬取思路 前言   本文为原创,代码并非原创,如有侵权,请联系我删除。转自bilibili视频:Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析   本文仅为学习过程的记录,非常好的课程教学。那么从此项目中我们可以学到哪些东西呢?我总结主要有以下几点:   1、可以学习一个完整爬虫项目的编码思路;   2、可以学习在爬虫项目中几个常用的第三方库;   3、

先剃度再出家 5274

【愚公系列】《Python网络爬虫从入门到精通》015-案例:爬取豆瓣电影Top 250

在信息丰富的互联网时代,网络爬虫技术为我们提供了获取和分析数据的强大工具。作为一个涵盖了大量影视信息的平台,豆瓣电影以其丰富的用户评分和评论,成为了电影爱好者和研究者的重要资源。而在众多的数据抓取项目中,爬取豆瓣电影Top 250无疑是一个经典且颇具挑战性的案例。在本期文章中,我们将详细解析如何利用Python编写网络爬虫,专门针对豆瓣电影Top 250进行数据抓取。我们将一步步介绍从分析网页结构、构建请求、处理响应,到提取电影信息(如标题、评分、评论等)的整个流程。

愚公智库 12万+

爬取豆瓣TOP250

第一课《爬取豆瓣TOP250》 基于html跳转

qq_46652932的博客 1万+

最新豆瓣电影Top250爬虫(附完整代码)

爬取豆瓣电影TOP250电影数据,并保存到Excel。

Pangaoyang_的博客 3564

爬虫豆瓣电影top250代码和收获

爬虫豆瓣电影top250代码和收获

a2437383438的博客 2363

21张让你Python突飞猛进的速查表_python速查表

随着深度学习的蓬勃发展,越来越多的小伙伴们开始使用python作为主打代码,python有着种类繁多的第三方库,这里为大家从网络上收集了一些代码速查表,希望可以帮你在码代码时提速。

2401_84572787的博客 574

爬虫爬取豆瓣电影TOP250源代码

用爬虫爬取豆瓣电影TOP250源代码,并存储至sqlite数据库.需要安装bs4,requests,urllib,re,openpyxl,sqlite3等库

基于网络爬虫对豆瓣电影Top 250网的数据采集

基于网络爬虫对豆瓣电影Top 250网的数据采集

IT-再见的博客 2060

豆瓣电影top250爬虫

纯手写豆瓣电影爬虫。没用BeautifulSoup,用的纯字符串搜索。

C# typeof() 和 GetType()区别

总得来说他们都是为了获取某个实例具体引用的数据类型System.Type。 1、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,x.GetType(),其中x为变量名,由x实例返回得到一个类型 2、typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称,返回一个类型 3、System.Type.GetType(),有两个重载方法 比如有这样一个变量i: Int32 i = new Int32(); 使用GetType(),i...

Peter的博客 1956

【爬虫】基于Python的网络爬虫技术原理与实现——以豆瓣电影Top250数据采集为例

本文将介绍一个基于Python语言的简单豆瓣电影Top 250爬虫的实现过程,主要通过使用 requests 库进行网页请求,使用 BeautifulSoup 库进行网页解析,并将结果保存为 CSV 格式供后续分析使用。本文不仅将涉及具体的代码实现,还将详细分析实现过程中所涉及的爬虫原理、数据提取方法和解析步骤,同时结合算法优化的实践探讨,帮助读者更好地理解这一过程。

2303_77200324的博客 1552

在LinuxMint 22.1(Ubuntu24.04)上安装使用同花顺远航版

Linux用户成功在LinuxMint22.1系统上通过Wine9.0运行同花顺远航版,解决了长期困扰的股票行情软件问题。此前Linux原生版同花顺功能简陋且停止更新,Wine版通达信存在显示问题。作者作为自由软件支持者,通过调整Wine配置文件解决了高分屏显示异常问题,实现了远航版的正常使用。期待同花顺能重启Linux原生版开发,支持更多处理器架构,完善国产软件生态。该方案为Linux股票软件用户提供了实用参考。

5137

豆瓣电影TOP250爬虫源代码:一款强大的数据抓取工具

豆瓣电影TOP250爬虫源代码:一款强大的数据抓取工具 去发现同类优质开源项目:https://gitcode.com/ 在互联网时代,数据的重要性不言而喻。今天,我将为您介绍一款实用的开源项目——豆瓣电影TOP250爬虫源代码。这款工具能帮助您快速抓取豆瓣电影TOP250的数据,为您的数据分析工作提供有力支持。 项目介绍 豆瓣电影TOP250爬虫源代码是一款用Python编写的爬虫项目,旨在从豆...

gitblog_06775的博客 479

ml307 二次开发

中移物联网旗下4g模组官方网站官方教程id=514官方客户不知道啥时候上班 早上10点也说不在服务时间内 找不到官方的sdk下载路径。

myWorld001的博客 2886

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

Mr_XiMu的博客 3742

【Python爬虫必看】零基础手把手教你爬取豆瓣电影Top250,附完整代码实战!

“别摆烂!你写的每一行代码,都是通向国一的功德!“

唐叔学习中... 3869

数值计算之 插值法(4)切比雪夫零点插值

数值计算之 插值法(4)切比雪夫零点插值前言插值点选取第一类切比雪夫多项式拉格朗日插值多项式的余项切比雪夫零点插值后记 前言 上篇插值法讨论了多项式插值的解,以及龙格现象。本篇将介绍一种在抽取节点时有效降低龙格现象的方法——切比雪夫零点插值。 插值点选取 插值多项式阶数较高时,在取值空间均匀取点,容易出现龙格现象。 即区间边缘的插值结果与原函数差异很大,而区间中央的插值结果相对较好。这表明,高阶多项式插值对区间中央的节点拟合好,而对两端节点拟合效果差。 自然而然会想到,在两端多采样一些节点,在中间少采样一

qq_41035283的博客 1万+

豆瓣电影top250爬虫+数据可视化完整代码(附视频讲解)

豆瓣电影top250爬虫+数据可视化完整代码(附视频讲解)

V123456789987654的博客 3790

在ARM平台上使用Anbox和LXC进行ARM开发调试

在ARM平台上使用Anbox和LXC进行ARM开发调试是一种强大的工具组合。通过安装和配置Anbox和LXC,以及在LXC容器中运行ARM应用程序,开发人员可以方便地进行ARM开发和调试。LXC(Linux容器)是一种轻量级虚拟化技术,它提供了一种在单个主机上运行多个独立的Linux容器的方法。我们将讨论安装和配置Anbox和LXC,以及如何在容器中运行ARM应用程序。通过上述步骤,你现在可以在LXC容器中运行ARM应用程序,并使用Anbox在ARM平台上进行开发和调试。步骤2:启动LXC容器。

KwmGroovy的博客 735

YOLO项目从零开始:超详细运行教程(图文保姆级教学)

至此,我们已经完整跑通了YOLO项目的安装与启动流程,无论你是零基础小白还是刚入门的AI新兵,只要按部就班操作,也能轻松实现目标检测项目的落地。

一键难忘的博客 4800

爬虫豆瓣top250代码

有点瑕疵,需要改进 #1.获取网页源代码 #2.解析数据,获取到自己想要的内容 #3.保存数据 import re import time import requests import csv for i in range(0,25): n=i*25 url='https://movie.douban.com/top250?start='+str(n) header={ "Cookie": 'bid=W9LftjwdnG0; douban-fav-rem

qq_55977554的博客 1393

42、InfiniBand技术详解:QP状态机、操作及错误处理

本文深入解析InfiniBand技术中的核心组件QP(Queue Pair)状态机、工作请求处理机制、支持的操作类型及错误处理策略。详细介绍了QP的创建与状态转换流程,包括INIT、RTR、RTS等关键状态,并提供了状态修改的代码示例。文章还探讨了工作请求的发布、资源使用限制、围栏机制以及重试和RNR流程,帮助开发者理解通信可靠性保障机制。此外,涵盖了多播组的应用场景与API使用方法,并对比了用户空间与内核级RDMA API的调用差异,最后给出了实践建议和常见问题解答,为构建高性能分布式系统提供技术指导。

oauth7security的博客 132

「爬取豆瓣Top250电影的中文名称」数据采集、网络爬虫

「爬取豆瓣Top250电影的中文名称」数据采集、网络爬虫

仟墨(郑龙浩)的博客 694

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: GROUP BY语句与HAVING语句的使用
下一篇: MapReduce剖析笔记之一:从WordCount理解MapReduce的几个阶段(转载)
mas2005
博客等级 码龄10年 4粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值