返回顶部
首页 > 资讯 > 后端开发 > Python >(转)Python3爬取豆瓣电影保存到
  • 908
分享到

(转)Python3爬取豆瓣电影保存到

豆瓣电影 2023-01-31 08:01:35 908人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

48行代码实现python3爬取豆瓣电影排行榜代码基于python3,用到的类库有: 标题文字 requests:通过伪造请求头或设置代理等方式获取页面内容,参考文档BeautifulSoup:对页面进行解析,提取数据,参考文档PyMys

48行代码实现python3爬取豆瓣电影排行榜
代码基于python3,用到的类库有:

标题文字

requests:通过伪造请求头或设置代理等方式获取页面内容,参考文档
BeautifulSoup:对页面进行解析,提取数据,参考文档
PyMysql:Python3版本中用于操作mysql数据库,python2中则使用mysqldb,GitHub

pip安装用到的几个类库:

pip install requests
pip install bs4
pip install pymysql
分析豆瓣电影页面
页面分析:
爬取数据之前,我们都需要对页面进行分析,看我们可以从中提取到哪些数据,从下图我们看到豆瓣电影top250的页面结构,我们可以从中提取出排行榜(rank)、电影名字(name)、电影详情页链接(link)、电影海报(poster)、电影评分(score)、电影评论(quote)等,我在图中进行了标注

URL分析:
通过点击分页我们可以发现URL的格式为:https://movie.douban.com/top2...
其中num表示25的倍数的数字,最小是0也就是第一页,最大为225也就是最后一页,这可以作为我们爬取页面的限制条件,filter为过滤条件这里可不用管

代码
引入类库:

import pymysql
import requests
from bs4 import BeautifulSoup
定义爬取链接,%d用作数字占位:

baseUrl = "Https://movie.douban.com/top250?start=%d&filter="
定义爬取数据方法:

def get_movies(start):

url = baseUrl % start   # 拼接爬取链接
lists = []              # 存储此页面的电影数据
html = requests.get(url)    # requests请求页面内容,由于豆瓣没有限制爬取,所以不用设置伪请求头
soup = BeautifulSoup(html.content, "html.parser")   # BeautifulSoup解析页面内容
items = soup.find("ol", "grid_view").find_all("li") # 获取所有的电影内容
for i in items:
    movie = {}      # 临时存取电影的数据
    movie["rank"] = i.find("em").text   # 电影排行榜
    movie["link"] = i.find("div","pic").find("a").get("href")   # 电影详情页链接
    movie["poster"] = i.find("div","pic").find("a").find('img').get("src")  # 电影海报地址
    movie["name"] = i.find("span", "title").text    # 电影名字
    movie["score"] = i.find("span", "rating_num").text  # 电影评分
    movie["quote"] = i.find("span", "inq").text if(i.find("span", "inq")) else "" # 某些电影没有点评,没有就设为空
    lists.append(movie) # 保存到返回数组中
return lists

连接数据库并创建数据表:

db = pymysql.connect(host="localhost",user="root",passWord="root",db="test",charset="utf8mb4")
cursor = db.cursor() # 创建一个游标对象
cursor.execute("DROP TABLE IF EXISTS movies") # 如果表存在则删除

createTab = """CREATE TABLE movies(

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
rank VARCHAR(4) NOT NULL,
link VARCHAR(50) NOT NULL,
poster VARCHAR(100) NOT NULL,
score VARCHAR(4) NOT NULL,
quote VARCHAR(50)

)"""
cursor.execute(createTab) # 执行创建数据表操作
......
db.close() # 关闭数据库
将提取到的数据存储到数据表中:

lists = get_movies(start) # 获取提取到数据

for i in lists:
    # 插入数据到数据库sql语句,%s用作字符串占位
    sql = "INSERT INTO `movies`(`name`,`rank`,`link`,`poster`,`score`,`quote`) VALUES(%s,%s,%s,%s,%s,%s)"
    try:
        cursor.execute(sql, (i["name"], i["rank"], i["link"], i["poster"], i["score"], i["quote"]))
        db.commit()
        print(i[0]+" is success")
    except:
        db.rollback()
start += 25

完整代码:

import pymysql
import requests
from bs4 import BeautifulSoup
baseUrl = "https://movie.douban.com/top250?start=%d&filter="
def get_movies(start):

url = baseUrl % start
lists = []
html = requests.get(url)
soup = BeautifulSoup(html.content, "html.parser")
items = soup.find("ol", "grid_view").find_all("li")
for i in items:
    movie = {}
    movie["rank"] = i.find("em").text
    movie["link"] = i.find("div","pic").find("a").get("href")
    movie["poster"] = i.find("div","pic").find("a").find('img').get("src")
    movie["name"] = i.find("span", "title").text
    movie["score"] = i.find("span", "rating_num").text
    movie["quote"] = i.find("span", "inq").text if(i.find("span", "inq")) else ""
    lists.append(movie)
return lists

if name == "__main__":

db = pymysql.connect(host="localhost",user="root",password="root",db="test",charset="utf8mb4")

--结束END--

本文标题: (转)Python3爬取豆瓣电影保存到

本文链接: https://lsjlt.com/news/193434.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • (转)Python3爬取豆瓣电影保存到
    48行代码实现Python3爬取豆瓣电影排行榜代码基于python3,用到的类库有: 标题文字 requests:通过伪造请求头或设置代理等方式获取页面内容,参考文档BeautifulSoup:对页面进行解析,提取数据,参考文档PyMyS...
    99+
    2023-01-31
    豆瓣 电影
  • 爬取豆瓣电影信息
    昨天写了一个小爬虫,爬取了豆瓣上2017年中国大陆的电影信息,网址为豆瓣选影视,爬取了电影的名称、导演、编剧、主演、类型、上映时间、片长、评分和链接,并保存到MongoDB中。 一开始用的本机的IP地址,没用代理IP,请求了十几个网页之后...
    99+
    2023-01-30
    豆瓣 电影 信息
  • 爬取豆瓣电影排行top250
    爬取豆瓣电影排行top250 功能分析: 使用的库 1、time 2、json 3、requests 4、BuautifulSoup 5、RequestException """ 作者:李舵 日期:2019-4-27...
    99+
    2023-01-31
    豆瓣 电影排行
  • python爬取豆瓣电影TOP250数据
    在执行程序前,先在MySQL中创建一个数据库"pachong"。 import pymysql import requests import re #获取资源并下载 def resp(listURL): ...
    99+
    2022-06-02
    python 爬取豆瓣电影 python 爬取豆瓣数据
  • python爬取豆瓣top250的电影数
    爬取网址: https://movie.douban.com/top250 一:爬取思路(新手可以看一下) :      1:定义两个函数,一个get_page函数爬取数据,一个save函数保存数据,mian中向get_page函数传递...
    99+
    2023-01-31
    豆瓣 电影 python
  • 转载—Python抓取豆瓣电影
    #!/usr/bin/python # -*-coding:utf-8-*- # Python:   2.7 # Program:  爬取豆瓣电影   from bs4 import BeautifulSoup import urllib2...
    99+
    2023-01-31
    豆瓣 电影 Python
  • Python3 爬取豆瓣书籍 Xpat
    #coding:utf8import timefrom urllib import requestfrom bs4 import BeautifulSoupnum = 1#用来计算一共爬取了多少本书start_time = time.tim...
    99+
    2023-01-31
    豆瓣 书籍 Xpat
  • 用python爬取豆瓣前一百电影
    目录实现代码:代码分析:运行结果:总结网站爬取的流程图: 实现项目我们需要运用以下几个知识点 一、获取网页1.找网页规律;2.使用 for 循环语句获得网站前4页的网页链接;3.使...
    99+
    2024-04-02
  • Python爬虫爬取豆瓣电影之数据提取值
    工具:Python 3.6.5、PyCharm开发工具、Windows 10 操作系统、谷歌浏览器 目的:爬取豆瓣电影排行榜中电影的title、链接地址、图片、评价人数、评分等 网址:https://movie.douban.com/ch...
    99+
    2023-01-30
    爬虫 豆瓣 数据
  • 使用Python怎么爬取豆瓣电影名
    这期内容当中小编将会给大家带来有关使用Python怎么爬取豆瓣电影名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pyt...
    99+
    2023-06-14
  • python如何爬取豆瓣电影TOP250数据
    这篇文章将为大家详细讲解有关python如何爬取豆瓣电影TOP250数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在执行程序前,先在MySQL中创建一个数据库"pachong"。i...
    99+
    2023-06-15
  • Python爬取豆瓣电影方法是什么
    本篇内容主要讲解“Python爬取豆瓣电影方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬取豆瓣电影方法是什么”吧!主要目标 环境:MAC + Python3....
    99+
    2023-06-02
  • Python爬虫怎么爬取豆瓣影评
    本篇内容主要讲解“Python爬虫怎么爬取豆瓣影评”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬虫怎么爬取豆瓣影评”吧!一、学习开始前需安装模块pip install reques...
    99+
    2023-06-02
  • 怎么用python爬取豆瓣前一百电影
    这期内容当中小编将会给大家带来有关怎么用python爬取豆瓣前一百电影,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的...
    99+
    2023-06-26
  • 【python】爬取豆瓣电影排行榜Top250存储到Excel文件中【附源码】
    英杰社区https://bbs.csdn.net/topics/617804998 一、背景         近年来,Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程 序,用于抓取豆瓣电影Top...
    99+
    2024-01-21
    python 人工智能 开发语言
  • 13行代码实现爬取豆瓣250电影榜单
    原理很简单,通过发送resquest请求获取服务器的response,再使用xpath提取其中我们需要的数据,然后保存到文件中。 先看看我爬取的结果: 首先,需要用到的模块有两个: •requests •lxml 第一步,我们先用Ch...
    99+
    2023-01-30
    豆瓣 榜单 代码
  • Scrapy 爬虫实例 抓取豆瓣小组信息并保存到mongodb中
    这个框架关注了很久,但是直到最近空了才仔细的看了下 这里我用的是scrapy0.24版本先来个成品好感受这个框架带来的便捷性,等这段时间慢慢整理下思绪再把最近学到的关于此框架的知识一一更新到博客来。最近想学...
    99+
    2024-04-02
  • 实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
    安装部署Scrapy 在安装Scrapy前首先需要确定的是已经安装好了Python(目前Scrapy支持Python2.5,Python2.6和Python2.7)。官方文档中介绍了三种方法进行安装,我采用...
    99+
    2022-06-04
    爬虫 豆瓣 框架
  • 如何使用Selenium爬取豆瓣电影前100的爱情片
    小编给大家分享一下如何使用Selenium爬取豆瓣电影前100的爱情片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是SeleniumSelenium是一个用...
    99+
    2023-06-14
  • Python 通过xpath属性爬取豆瓣热映的电影信息
    目录前言页面分析实现过程创建项目Item定义中间件操作定义爬虫定义数据管道定义配置设置执行验证总结前言 声明一下:本文主要是研究使用,没有别的用途。 GitHub仓库地址:githu...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作