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技术站