您的位置:首页 > 编程语言 > Python开发

python:beautifulSoup抓取电影数据且入库

2017-12-01 00:00 337 查看
import requests
from bs4 import BeautifulSoup
import pymysql
from qiniu import Auth
from qiniu import BucketManager
import datetime
import time

# 上传文件到七牛云
q = Auth(access_key,secret_key)
#要上传的空间
bucket_name = 'bucket_name'
bucket = BucketManager(q)

# 链接数据库
db = pymysql.connect(host='127.0.0.1',port= 3306,user = 'root',passwd='',db='movies',charset='utf8')
#创建游标
cur = db.cursor()

url = 'http://www.mp4pa.com/dy/hd3.html'
res = requests.get(url)
res.encoding = 'utf-8'

soup = BeautifulSoup(res.text,'lxml')

# 找出第一页所有的电影信息
lis = soup.find(class_='layout_newlist4').find_all('li')
for li in lis:
# 电影名称
movie_name = li.select('.titl')[0].get_text().strip().split(' ')[0]

# 电影链接
movie_link = 'http://www.mp4pa.com'+li.find(class_ = 'titl')['href'].strip()
res = requests.get(movie_link)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text,'lxml')

# 找出所有的电影图片
info = soup.find(class_ = 'layout_newlist4')
movie_img_link = info.find('img')['src']
for a in info.find_all(class_ = 'videourl1'):
if 'baidu' in a.find('a')['href']:
baiduyun = a.find('a')['href'].strip()

'''
# 图片下载到本地
imgres = requests.get(movie_img_link)
with open(movie_name+'.png','wb') as f:
f.write(imgres.content)
f.close()
print(video_link)
'''

key = 'movie/logo/'+datetime.datetime.now().strftime('%Y%m%d')+'/'+str(int(time.time()))+'.png'
bucket.fetch(movie_img_link, bucket_name, key)

# 存入数据库
dateTime = datetime.datetime.now().strftime('%Y-%m-%d')
key = 'http://og23vuzev.bkt.clouddn.com/'+key
cur.execute("insert into movie(movie_name,movie_logo,movie_public_time,baiduyun_link,created_at,updated_at) values(%s,%s,%s,%s,%s,%s)",(movie_name,key,dateTime,baiduyun,dateTime,dateTime))

#提交
db.commit()
#关闭指针对象
cur.close()
#关闭连接对象
db.close()
#打印结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息