标签:cursor python text 数据库 爬取 item MySQL find conn
大家好,我是天空之城,今天给大家带来用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调整之后,是这种效果,去空格
标签:cursor,python,text,数据库,爬取,item,MySQL,find,conn 来源: https://blog.csdn.net/littlespider889/article/details/106450904
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。