目标:爬取电影网站的电影详情并保存到mysql数据库中
一.设计好数据库和表字段,连接数据库
连接数据库
,参考链接
#数据库连接
def sql(moviename,years,ziyuan,daoyan,zhuyan,leixing,address,yuyan,pianchang,othername,pdianji,pingfen,jieshao,src):
#本机数据库地址
db = pymysql.connect(host='host地址', user='账号', password='密码', db='数据库')
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
# 数据库操作
# 定义一个格式化的sql语句
sql = 'INSERT INTO `pydb`.`movies`(`moviename`, `years`, `ziyuan`, `daoyan`, `zhuyan`, `leixing`, `address`, `yuyan`, `pianchang`, `othername`, `pdianji`, `pingfen`, `jieshao`,`src`) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
# 准备数据
data = (moviename,years,ziyuan,daoyan,zhuyan,leixing,address,yuyan,pianchang,othername,pdianji,pingfen,jieshao,src)
# 操作
try:
# 执行sql语句
cursor.execute(sql, data)
# 提交
db.commit()
print('正在插入数据:--'+str(moviename))
except Exception as e:
print('插入--'+str(moviename)+'--数据失败', e)
# 如果出错执行回滚
db.rollback() # 回滚
# 关闭游标
cursor.close()
# 关闭连接
db.close()
二.先尝试保存一页的数据到数据库中
#电影的详情
def moviexiangqing():
url='https://www.piaku.cc/k/tiejiagangquan/'
response = requests.get(url=url, headers=header)
html = etree.HTML(response.text)
# 电影名
name = html.xpath("//div[@class='main-ui-meta']/h1/text()")
# 电影发布的时间
year