Python 爬取豆瓣Top250的电影

import requests,bs4,openpyxl
wb=openpyxl.Workbook()
#创建工作薄
sheet=wb.active
#获取工作薄的活动表
sheet.title='movies'
#工作表重命名
sheet['A1']='序号'
sheet['B1']='电影名'
sheet['C1']='评分'
sheet['D1']='推荐语'
sheet['E1']='链接'
for x in range(10):
    headers={'user-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36'}
    url='https://movie.douban.com/top250?start=' +str(x*25)+'&filter='
    res=requests.get(url,headers=headers)
    bs=bs4.BeautifulSoup(res.text,'html.parser')
    bs=bs.find('ol',class_='grid_view')
    for titles in bs.find_all('li'):
        num=titles.find('em',class_='').text
        #标题
        title=titles.find('span',class_='title').text
        #评分
        comment=titles.find('span',class_='rating_num').text
        #链接
        url_movie=titles.find('a')['href']
        if titles.find('span',class_='inq')!=None:
            tes=titles.find('span',class_='inq').text
            sheet.append([num,title,comment,tes,url_movie])
            print(num+'.'+title+'---'+comment+'\n'+'推荐语:'+tes+'\n'+url_movie)
        else:
            sheet.append([num,title,comment,None,url_movie])
            print(num+'.'+title+'---'+comment+'\n'+tes+'\n'+'\n'+url_movie)
wb.save('movieTop250.xlsx')

用csv格式存储信息:

import requests,bs4,csv
csv_file=open('movieTop250.csv','w',newline='')
writer=csv.writer(csv_file)
writer.writerow(['序号','电影名','评分','推荐语','链接'])
for x in range(10):
    headers={'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36'}
    url='https://movie.douban.com/top250?start=?'+str(x*25)+'&filter='
    res=requests.get(url,headers=headers)
    bs=bs4.BeautifulSoup(res.text,'html.parser')
    bs=bs.find('ol',class_='grid_view')
    for titles in bs.find_all('li'):
        num=titles.find('em',class_='').text
        title=titles.find('span',class_='title').text
        comment=titles.find('span',class_='rating_num').text
        url_movie=titles.find('a')['href']
        if titles.find('span',class_='inq')!=None:
            tes=titles.find('span',class_='inq').text
            writer.writerow([num+'.'+title+'--'+comment+'\n'+'推荐语:'+tes+'\n'+url_movie])
        else:
            writer.writerow([num+'.'+title+'--'+comment+'\n'+'\n'+url_movie])
csv_file.close()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值