大家好,我是天空之城,今天給大家帶來用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調整之後,是這種效果,去空格