日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬取豆瓣电影Top 250封面

發布時間:2024/8/1 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬取豆瓣电影Top 250封面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,作為一名互聯網行業的小白,寫博客只是為了鞏固自己學習的知識,但由于水平有限,博客中難免會有一些錯誤出現,有不妥之處懇請各位大佬指點一二!
博客主頁:鏈接: https://blog.csdn.net/weixin_52720197?spm=1018.2118.3001.5343

import requests from lxml import etree import pandas as pd import osMOVIES = [] IMGURLS = []# 獲取源代碼 def get_html(url):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}try:html = requests.get(url,headers = headers)html.encoding = html.apparent_encodingif html.status_code == 200:print('成功獲取源代碼')# print(html.text)except Exception as e:print('獲取源代碼失敗:%s' % e)return html.text# 數據解析 def parse_html(html):movies = [] # 電影列表imgurls = [] # 圖片列表html = etree.HTML(html)# 獲取lis的信息lis = html.xpath("//ol[@class = 'grid_view']/li")# 每寫一個Xpath,要run一下,看看有沒有數據,或者調整格式for li in lis:# 姓名在<li>標簽下的<span>標簽name = li.xpath(".//a/span[@class='title'][1]/text()")[0]# split()可以去掉空格director_actor = "".join(li.xpath(".//div[@class='bd']/p/text()[1]")[0].replace(' ','').replace('\n','').replace('/','').split())info = "".join(li.xpath(".//div[@class='bd']/p/text()[2]")[0].replace(' ','').replace('\n','').split())# 評分rating_score = li.xpath(".//span[@class='rating_num']/text()")[0]# 評分人數rating_num = li.xpath(".//div[@class='star']/span[4]/text()")[0]# 簡介introduce = li.xpath(".//p[@class='quote']/span/text()")if introduce:movie = {'name': name, 'director_actor': director_actor, 'info': info, 'rating_score': rating_score,'rating_num': rating_num, 'introduce': introduce[0]}else:movie = {'name': name, 'director_actor': director_actor, 'info': info, 'rating_score': rating_score,'rating_num': rating_num, 'introduce': None}# 獲取圖片imgurl = li.xpath(".//img/@src")[0]movies.append(movie)imgurls.append(imgurl)return movies,imgurlsdef download_img(url,movie):# 如果在此路徑下if 'movieposter' in os.listdir(r'D:\Python\spader\爬蟲\豆瓣電影封面'): # 自己定義路徑pass # 跳過else: # 否則os.mkdir('movieposter') # 建立movieposter文件夾os.chdir(r'D:\Python\spader\爬蟲\豆瓣電影封面\movieposter')img = requests.get(url).content# 以電影名+jpg,以wb形式寫入with open(movie['name'] + '.jpg','wb') as f: # 以電影名字命名print('正在下載 : %s' % url) # 提示信息f.write(img)if __name__ == '__main__':for i in range(10):url = 'https://movie.douban.com/top250?start=' + str(i * 25) + '&filter='# 獲取源代碼html = get_html(url)movies = parse_html(html)[0]imgurls = parse_html(html)[1]MOVIES.extend(movies)IMGURLS.extend(imgurls)for i in range(250):download_img(IMGURLS[i],MOVIES[i])os.chdir(r'D:\Python\spader\爬蟲\豆瓣電影封面')# 保存到csv文件中moviedata = pd.DataFrame(MOVIES)moviedata.to_csv('movie.csv') # 自己起名字print('電影信息成功保存到本地')

結果


解決文字亂碼
用記事本打開CSV文件----->文件------>另存為------>點編碼------>選擇ANSI----->保存,然后用excel打開就不會是亂碼了。

總結

以上是生活随笔為你收集整理的爬取豆瓣电影Top 250封面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。