1-爬取猫眼电影Top100的电影

目的:爬取猫眼电影Top100的电影中,每个电影的排名、名称、主演、上映时间、评分以及影片的图片

结果呈现:存入csv中

猫眼电影的网址:https://maoyan.com/board/4

#下面为本实例的爬虫代码,若有问题可以给我留言,或者有更好的解决方法也可以私信我~

import  requests
from bs4 import BeautifulSoup
import csv
import os

def get_page(url):
    headers={'user-agent':'Mozilla'}
    try:
        r=requests.get(url,headers=headers)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except Exception as e:
        print(e)

def get_pagenum(base_url):#得到共多少页
    html=get_page(base_url)
    soup=BeautifulSoup(html,'html.parser')
    li=soup.find('ul',{'class':{'list-pager'}})('li')[-2].text.strip()
    return int(li)

def get_pageinfo(url):
    html=get_page(page_url)
    soup=BeautifulSoup(html,'html.parser')
    dl=soup.find('dl',{'class':{'board-wrapper'}})
    for dd in dl('dd'):
        index=dd('i')[0].text.strip()#排名
        name=dd('a')[0]['title']  #名称
        star=dd.find('p',{'class':{'star'}}).text.strip().split(':')[-1]  #主演
        releasetime=dd.find('p',{'class':{'releasetime'}}).text.strip().split(':')[-1] #发布时间
        score=dd.find('p',{'class':{'score'}}).text.strip() #评分
        img=dd.find('img',{'class':{'board-img'}})['data-src'].split('@')[0]  #图片

        #保存图片,以电影名称命名
        path='./'+'猫眼电影'+'/'
        if not os.path.exists(path):
            os.makedirs(path)
        file_name=path+index+name+'.jpg'
        r=requests.get(img)
        with open(file_name,'wb')as f:
            f.write(r.content)
        f.close()

        #保存到csv文件中
        content=[index,name,star,releasetime,score,img]
        save_to_csv(content)
        print('{}---{}---保存到csv成功!---?'.format(index,name))

def save_to_csv(content):
    file='猫眼电影'+'.csv'
    with open(file,'a+',encoding='utf-8',newline="")as csv_file:
        csv_write=csv.writer(csv_file)
        if os.path.getsize(file)==0:
            csv_write.writerow(['排名','名称','主演','上映时间','评分','图片'])
        csv_write.writerow(content)
    csv_file.close()

if __name__ == '__main__':
    start_url='https://maoyan.com/board/4'
    num=get_pagenum(start_url)
    for i in range(num):
        page_url=start_url+'?offset='+str(i*10)  #得到每一页的网址
        get_pageinfo(page_url)

#下面是各种显示

(1)屏幕显示

71822385b0683faefaf527766c2ec7930cb.jpg

(2)文件夹中图片的显示

3c07175af957437d5a41d6af5a0f7ffb42d.jpg

(3)csv文件的显示

e3313c84bb831fcbe5e480da41879f1f82b.jpg

今日爬虫完成!

今日鸡汤:其实一直陪着你的,是那个了不起的自己。

加油ヾ(◍°∇°◍)ノ゙

转载于:https://my.oschina.net/pansy0425/blog/2986809

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值