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

yizhihongxing

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日

相关文章

  • 性能最快的代码分析工具,Ruff 正在席卷 Python 圈!

    几天前,Python 开源社区又出了一个不小的新闻:HTTPX 和 Starlette 在同一天将在用的代码分析工具(flake8、autoflake 和 isort)统一替换成了 Ruff。 HTTPX 是一个支持异步的 HTTP 客户端,Starlette 是一个轻量级的 ASGI 框架,它们都是 Python 社区里的明星项目,目前加起来有近 20K …

    python 2023年4月18日
    00
  • Python 复合设计

    Python 复合设计的使用方法完整攻略 在Python中,复合设计是一种实现代码复用和高效管理的强大工具。它允许我们通过合并几个独立的类来构建一个新的、更强大的类。在这个攻略中,我将告诉你什么是复合设计,它的优点、如何使用它以及一些示例说明。 什么是复合设计? 复合设计是一种将多个类组合在一起,以实现代码复用和高效管理的方法。它通过将类的实例保存为自己的属…

    python-answer 2023年3月25日
    00
  • Python3.4学习笔记之常用操作符,条件分支和循环用法示例

    Python3.4学习笔记之常用操作符,条件分支和循环用法示例 在Python3.4中,有很多常用的操作符、条件分支和循环用法,这些知识点是Python编程的基础,非常值得我们学习。 常用操作符 Python3.4中常用的操作符有算术操作符、比较操作符、逻辑操作符等。接下来我们分别来介绍一下。 算术操作符 Python3.4中的算术操作符主要有加法+、减法-…

    python 2023年6月5日
    00
  • Python中实现switch功能实例解析

    下面是关于“Python中实现switch功能实例解析”的完整攻略。 概述 在Python中,没有类似于C++或Java中的switch-case语句来实现多个分支的条件判断。但是,我们可以使用字典(dict)和函数来实现类似于switch-case的功能。下面就让我们一步步来看如何实现。 方法1:使用字典实现 使用字典实现switch-case语句的思路是…

    python 2023年5月19日
    00
  • Python运算符教程之逻辑门详解

    Python运算符教程之逻辑门详解 1. 逻辑门简介 逻辑门同电子学中的电子门,用于实现逻辑运算。 1.1 逻辑运算类型 常用的逻辑运算有三种: 与(and) 或(or) 非(not) 1.2 逻辑真值表 逻辑真值表是一种列出可能结果的表格,通常用于分析各种逻辑操作的效果。 以下是逻辑真值表的模板: 输入1 输入2 输出 False False False …

    python 2023年6月5日
    00
  • django queryset相加和筛选教程

    下面是关于“DjangoQuerySet相加和筛选教程”的完整攻略。 1. 概述 首先,需要了解什么是Django QuerySet。Django QuerySet是Django中非常重要的概念之一,提供了许多强大的查询方法,用于过滤和操作数据库中的数据。Django QuerySet相加和筛选是Django中经常使用的查询技巧之一,可以用于从多个表中查询数…

    python 2023年5月14日
    00
  • Python操作配置文件ini的三种方法讲解

    Python操作配置文件ini的三种方法讲解 配置文件ini格式是将配置信息存储在文件中的一种方式,它通常被用来存储应用程序的一些设置、选项和配置信息。Python提供了多种方法来操作ini格式的配置文件,本文介绍其中的三种方法。 1. 使用configparser模块 configparser模块是Python内置的操作ini格式配置文件的模块。它提供了C…

    python 2023年6月3日
    00
  • 详解Python 使用柯里化的高阶函数

    下面是Python使用柯里化的高阶函数的攻略。 什么是柯里化? 柯里化(Currying)是函数式编程中的一种技术,它是指将多个参数的函数转换为每个参数只有一个的函数序列的过程,也就是将一个多元函数转换成多个一元函数的嵌套过程。 为什么要使用柯里化? 使用柯里化可以减少函数的参数数量,让函数更加灵活,可以更方便地进行函数组合。 柯里化的高阶函数 Python…

    python-answer 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部