用python爬取電影數據並保存進MySQL數據庫

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章