python爬虫,爬取豆瓣电影信息

博主分享了初次尝试Python爬虫的经历,成功爬取了豆瓣电影Top250的电影名字、评分、评分人数及部分短评。在过程中遇到了电影短评缺失和编码错误的问题,通过try...except结构处理了IndexError,并在保存文件时解决了UnicodeEncodeError,计划进一步完善爬虫,添加多线程和图像抓取功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hhhhh开心,搞了一整天,查了不少python基础资料,终于完成了第一个最简单的爬虫:爬取了豆瓣top250电影的名字、评分、评分人数以及短评。

代码实现如下:

#第一个最简单的爬虫
#爬取了豆瓣top250电影的名字、评分、评分人数以及短评

#观察豆瓣电影top250的网页可以发现:
#电影信息在一个ol标签之内,该标签的class属性值为grid_view
#1.电影的信息都在一个li标签里
#2.电影的电影名称在:第一个class属性值为hd的div标签下的 第一个 class属性值为title 的span标签里
#3.电影的评分在对应li标签里一个class属性值为rating_num 的span标签里
#4.电影的评价人数在 对应li标签 里的一个 class属性值为star 的div标签中 的最后一个数字
#5.电影的短评在 对应li标签 里的一个class属性值为inq的span标签里
#6.除第一页外,其他页的url:https://movie.douban.com/top250?start=X&filter= X的值为25-225的等差数列,差为25

from lxml import etree
import requests
import re

def get_info(url):
	movie_info = ''
	#通过get访问页面
	html = requests.get(url)
	selector = etree.HTML(html.text)
	content = selector.xpath('//ol[@class="grid_view"]/li')
	#第一个for循环抓取一整页的数据
	for r in content:
		#抓取电影的名字
		movie_name = r.xpath('./div[@class="it
Python中编写一个基本的豆瓣电影爬虫,并将图片保存到本地文件,需要用到`requests`, `BeautifulSoup`以及`os`库。这里提供一个简化版的示例,假设我们只关注获取电影的标题和图片链接。请注意,实际应用中需要处理反爬机制、登录验证等问题,下面的代码仅适用于学习目的。 ```python import requests from bs4 import BeautifulSoup import os # 定义函数用于下载图片 def download_image(url, save_path): response = requests.get(url) if response.status_code == 200: with open(save_path, 'wb') as f: f.write(response.content) # 爬取豆瓣电影详情页 def crawl_douban_movie(movie_id): base_url = "https://movie.douban.com/subject/" url = base_url + str(movie_id) + "/" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'lxml') # 获取电影名 movie_title = soup.find('span', {'property': 'v:alternative'}).text print(f"Movie Title: {movie_title}") # 获取图片链接,通常在电影海报处 poster_img = soup.find('img', id='mainpic') img_url = poster_img['src'] if poster_img else None if img_url: img_save_dir = "movie_posters" if not os.path.exists(img_save_dir): os.makedirs(img_save_dir) img_save_path = os.path.join(img_save_dir, f"{movie_id}.jpg") download_image(img_url, img_save_path) print(f"Image saved at: {img_save_path}") # 示例:爬取《阿甘正传》 crawl_douban_movie(1292052)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值