大家好,我是天空之城,有兴趣加qq群,纯学习,1098016198。今天给大家带来用python爬取电影数据并保存进MySQL数据库
第一步,先进入MySQL建立数据库和建立存数据的表(在pychram中完成)
import pymysql
conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='你的数据库密码',db='你的数据库名称',charset='utf8')
cursor=conn.cursor()
#建立存放电影数据的表doubanfilm6,名字自取
sql = """create table doubanfilm6(
m_id int primary key auto_increment,
m_xuhao varchar (10) not null,
m_title varchar(30) not null,
m_pingfen varchar(10) not null,
m_comment text null,
m_link varchar(100) not null
)"""
cursor.execute(sql)
cursor.close()
conn.close()
第二步,利用requests和beautifulsoup爬取数据,并保存进数据库,并提交数据,这两步分别在两个py文件中执行
import requests,pymysql
from bs4 import BeautifulSoup
header = {
'Referer': 'https://movie.douban.com/top250?start=1&filter=',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; rv:46.0) Gecko/20100101 Firefox/46.0'}
conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='你的数据库密码',db='mydb',charset='utf8')
cursor=conn.cursor()
for i in range(0,100,25):
res = requests.get(headers=header,url='https://movie.douban.com/top250?start={}&filter='.format(str(i)))
#print(res.status_code)
film = res.text
soup = BeautifulSoup(film, 'html.parser')
items = soup.find_all(class_="item")
for item in items:
xuhao=item.find('em').text #序号
title=item.find(class_="title").text #电影名称
pingfen=item.find(class_="rating_num").text #评分
comment=item.find(class_="inq").text #评论
link=item.find('a')['href'] #网址
#print(title,pingfen,comment,link)
sql = 'insert into doubanfilm6(m_xuhao,m_title, m_pingfen,m_comment, m_link) values ("%s","%s","%s","%s","%s")' % (xuhao,title, pingfen, comment, link)
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
调整了一下代码,再放一张图片,让大家看一下数据库保存的数据
用数据库神器navicat调整之后,是这种效果,去空格