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日

相关文章

  • 如何从python中的timedelta对象获取分钟和秒(mm:ss)

    【问题标题】:How to get minutes and seconds(mm:ss) from a timedelta object in python如何从python中的timedelta对象获取分钟和秒(mm:ss) 【发布时间】:2023-04-05 17:00:01 【问题描述】: 我正在编写一个代码,其中我为每个话语添加了持续时间(作为每个话…

    Python开发 2023年4月5日
    00
  • python如何发送带有附件、正文为HTML的邮件

    发送带有附件、正文为 HTML 的邮件可以使用 Python 的 smtplib、email.mime.text 和 email.mime.multipart 模块实现。 以下是详细的攻略步骤: 步骤一:导入模块 import smtplib from email.mime.text import MIMEText from email.mime.multi…

    python 2023年6月5日
    00
  • Python 随机生成中文验证码的实例代码

    从头开始生成一个中文验证码 首先需要导入一些必要的库,例如random、string和Pillow。具体来说,random和string库可以被用来创造一个随机的中文字符;Pillow库可以被用来处理图片。 接下来,我们需要定义一些基本的参数,比如图片大小、验证码长度等等。 然后,我们可以继续定义函数,其中的一部分将负责在图片上随机生成中文,另一部分则会创建…

    python 2023年5月13日
    00
  • Python 函数装饰器详解

    我来详细讲解一下“Python 函数装饰器”的完整攻略。 一、什么是Python函数装饰器 函数装饰器是一种可以动态地给一个函数增加功能的方式。在不改变原有函数的代码的情况下,可以通过“装饰”原函数来对其进行修改。Python中有很多内置的装饰器,比如classmethod、staticmethod和property等。此外,Python中还提供了自定义装饰…

    python 2023年6月3日
    00
  • 有趣的python小程序分享

    下面我会为大家分享“有趣的Python小程序分享”的完整攻略。 一、简述 Python 是一门灵活多变的编程语言,在生产环境和个人项目中都有广泛的应用。而 Python 基于简单易学的方式编写程序,使得其具有非常高的可读性和可维护性。今天,我们将分享一些有趣的 Python 小程序,它们的代码短小精悍,但是功能却十分实用。 二、攻略 1. 制作一个简单的倒计…

    python 2023年5月23日
    00
  • python实现NB-IoT模块远程控制

    Python实现NB-IoT模块远程控制完整攻略 1. 前言 NB-IoT是一种低功耗、广覆盖、高容量的无线通信技术,被广泛应用于物联网设备的连接和控制。基于Python语言,我们可以利用NB-IoT模块实现远程控制,实现物联网设备的远程管理。 2. 硬件和软件的准备 2.1 硬件准备 NB-IoT模块:如华为ME309或者Quectel BC95等NB-I…

    python 2023年6月3日
    00
  • python集合能干吗

    Python集合是一种无序、不重复的数据类型,可以用于存储各种类型的值,例如数字、字符串和元组等。集合非常适合用于数据去重、判断成员关系、求交集和并集等场景。 数据去重 集合最常用的功能之一就是去重。我们可以将一组数据放到一个集合中,自动去除重复的元素。使用方法如下: # 创建一个列表,包含重复元素 nums = [1, 2, 3, 2, 4, 5, 1] …

    python 2023年5月13日
    00
  • python 19个值得学习的编程技巧

    Python 19个值得学习的编程技巧 Python 作为一门高级编程语言,具有简单易学、高效且易读的特点,是各行业以及程序员的首选语言之一。如果你是 Python 初学者或者想进一步提升自己的 Python 水平,下面的 19 个编程技巧对你来说非常有参考价值。 1. 列表推导式 列表推导式是 Python 非常常用的一种语法,它可以通过一行代码快速地生成…

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