用python爬取电影数据并保存进MySQL数据库

大家好,我是天空之城,有兴趣加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()


调整了一下代码,再放一张图片,让大家看一下数据库保存的数据

用python爬取电影数据并保存进MySQL数据库_第1张图片

用数据库神器navicat调整之后,是这种效果,去空格
用python爬取电影数据并保存进MySQL数据库_第2张图片

你可能感兴趣的:(python,spider,mysql)