Python爬虫实现抓取电影网站信息并入库

Python爬虫实现抓取电影网站信息并入库

1.准备工作

  • 安装Python
  • 安装必要的库:BeautifulSoup, requests, pymysql

2.获取目标网站数据

使用requests库,向目标网址发送get请求,获取网站源代码,然后使用BeautifulSoup库解析出需要的信息。

示例代码:

import requests
from bs4 import BeautifulSoup

url = "http://www.film.com/"
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
result = soup.find_all("div", {"class": "film-info"})

通过以上代码,我们获取到了电影网站首页的所有电影信息。

3.数据清洗

获取到数据后,我们需要进行清洗,只保留我们需要的信息,并去除重复项。

示例代码:

import re

movies = []
for res in result:
    title = res.find("h2").text.strip()
    rating = res.find("p", {"class": "rating"}).text.strip()
    desc = res.find("p", {"class": "desc"}).text.strip()
    desc = re.sub(r"\s+", " ", desc)
    movie = {"title": title, "rating": rating, "desc": desc}
    if movie not in movies:
        movies.append(movie)

以上代码通过循环清洗出了每部电影的标题、评分以及简介,并将每部电影以字典形式存储在了数组中。

4.数据入库

清洗出来的数据需要存储到数据库中。这里以MySQL数据库为例,使用pymysql库进行操作。

示例代码:

import pymysql

# 连接数据库
db = pymysql.connect(host="localhost", user="root", password="password", database="film_db")
cursor = db.cursor()

# 创建数据表
sql = """CREATE TABLE IF NOT EXISTS movies(
         id INT(10) NOT NULL AUTO_INCREMENT,
         title VARCHAR(255) NOT NULL,
         rating FLOAT NOT NULL,
         desc VARCHAR(500) NOT NULL,
         PRIMARY KEY(id))"""
cursor.execute(sql)

# 将数据插入到数据库
for movie in movies:
    title = movie['title']
    rating = float(movie['rating'])
    desc = movie['desc']
    sql = """INSERT INTO movies (title, rating, desc) VALUES (%s, %s, %s)"""
    cursor.execute(sql, (title, rating, desc))

# 提交更改
db.commit()

# 关闭数据库连接
db.close()

以上代码创建了一个名为“movies”的数据表,并将清洗出来的电影信息依次插入到数据库中。

至此,我们就成功实现了爬虫抓取电影网站信息并入库的过程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬虫实现抓取电影网站信息并入库 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析

    下面我将详细讲解一下“Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析”的完整攻略。 1. os模块 1.1 os模块简介 os模块是Python的内置模块之一,主要用于与操作系统进行交互,并提供了许多处理文件和目录的方法。在大多数操作系统中,os模块提供了与操作系统底层交互的接口。 1.2 os模块常用方法介绍 1.2.1 获…

    python 2023年5月30日
    00
  • Python中requests库的用法详解

    以下是关于Python中requests库的用法详解的攻略: Python中requests库的用法详解 requests是一个流行的HTTP库,用于向Web服务器发送HTTP请求和接收响应。以下是Python中requests库的用法详解的攻略: 发送HTTP请求 以下是使用requests库发送HTTP请求的示例: import requests url…

    python 2023年5月14日
    00
  • python爬虫 – js逆向之突破某网的debug检测

    前言 朋友给了我一个网站,他说这个网站的debug检测有点东西,于是我准备研究一下 网址:aHR0cHM6Ly93d3cuYXFpc3R1ZHkuY24vaGlzdG9yeWRhdGEvZGF5ZGF0YS5waHA/Y2l0eT0lRTYlOUQlQUQlRTUlQjclOUUmbW9udGg9MjAyMTA5 (请不要问我什么东西,懂的都懂)   分析 …

    爬虫 2023年4月13日
    00
  • pywinauto自动化操作记事本

    下面是关于如何使用pywinauto自动化操作记事本的完整攻略。 简介 pywinauto是一个基于Python语言的自动化工具,可以用来自动化Windows的GUI应用程序的测试、交互等操作。本篇攻略将会介绍如何使用pywinauto来自动化操作Windows记事本应用程序。 安装 在使用pywinauto之前,需要先安装pywinauto库。可以使用pi…

    python 2023年5月19日
    00
  • Python利用PyVista进行mesh的色彩映射的实现

    关于Python利用PyVista进行mesh的色彩映射的实现攻略,我来给你详细讲解。整个过程可以总结为以下几个步骤: 安装PyVista 首先你需要安装PyVista,可以通过pip命令进行安装,具体命令如下: pip install pyvista 创建mesh并设置颜色映射 接下来,你需要使用PyVista创建mesh,并设置颜色映射。可以通过以下代码…

    python 2023年6月3日
    00
  • python语法教程之def()函数定义及用法

    Python语法教程之def()函数定义及用法 1. 函数的定义与调用 在Python中,我们可以使用def关键字定义一个函数,例如下面的代码段定义了一个简单的函数say_hello: def say_hello(): print(‘Hello, World!’) 在函数定义好之后,我们可以通过以下方式调用该函数: # 调用函数say_hello() say…

    python 2023年5月18日
    00
  • pythonfor循环中range与len区别

    在Python中,循环是编程中非常重要的知识点。在使用循环时,range()和len()都是很常见的函数. 但是,它们之间有很多区别和用法。本攻略将会详细解释range()和len()的使用和区别。 range函数 Python中range()函数生成一个指定范围的数字序列,通常用于循环中,语法如下: range(start, stop [, step]) …

    python 2023年6月6日
    00
  • 用Python实现Newton插值法

    用Python实现Newton插值法 一、方法介绍 牛顿插值法(Newton Interpolation)是一种通过将数据点连接一个多项式来逼近数据的方法。它使用一个递推公式来得出对应的插值多项式,因此也叫做Newton递推公式。它的主要思想是将插值多项式表示为一个递推公式,每次插入一个数据点时,就可以更新多项式的系数。 二、代码实现 下面是用Python实…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部