目的:爬取猫眼电影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)屏幕显示
(2)文件夹中图片的显示
(3)csv文件的显示
今日爬虫完成!
今日鸡汤:其实一直陪着你的,是那个了不起的自己。
加油ヾ(◍°∇°◍)ノ゙