Python爬虫:豆瓣电影 TOP 250
要求:爬取豆瓣电影 TOP 250(https://movie.douban.com/top250)的电影信息,如:[‘排名’, ‘电影名称’, ‘电影信息’, ‘评分’, ‘评价人数’, ‘推荐语’],并把这些信息保存在csv文件中。
文章目录
- 一、分析
- 二、爬取一页具体操作
- 三、完整代码
一、分析
1、爬取的网页为https://movie.douban.com/top250
2、具体的页面:
3、审查元素(每个电影的所有信息都存放在item中)
4、需要提取的信息(都在item下的元素中):
[‘排名’, ‘电影名称’, ‘电影信息’, ‘评分’, ‘评价人数’, ‘推荐语’]
5、需要用到BeautifulSoup库,进行元素的定位于提取
二、爬取一页具体操作
1、导入必要的库与请求头
from bs4 import BeautifulSoup
import requests
import reheaders = { # headers就是一个请求头"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}
2、请求豆瓣页面
url = 'https://movie.douban.com/top250'
# 获取相应对象
response = requests.get(url, headers=headers)
3、把源码放在bs4里面
# 创建bs4对象
soup = BeautifulSoup(response.text, 'html.parser')
4、解析页面,获取数据
(通过BeautifulSoup定位需要的元素并提取相应的内容,修改为合适的格式)
item_list = soup.find_all('div', attrs={"class": "item"})
for item in item_list:# 获取排行pic = item.find('div', attrs={"class": "pic"}).text # 获取排名# 获取电影名称title = item.find('div', attrs={'class': 'hd'}).find('a').text # 获取电影名称title = title.split('/')name = ''for i in title:i = i.replace('\n', '').replace('\xa0', '')i = i.strip()name += i + '/'# print('名字是:',name[:-1])# 获取导演信息p_list = item.find('div', attrs={"class": "bd"}).findAll('p')daoyan = p_list[0].text.replace('\n', '').replace('\xa0', '').strip()daoyan = re.sub(' {5,}', '', daoyan)# 获取评分和评价人数star = item.find('div', attrs={"class": "star"}).text.split() # 列表返回:1、分数2、评价人数# 获取推荐语quote = item.find('p', attrs={'class': 'quote'})if quote:quote = quote.text.strip()
5、输出并查看内容
print(pic, name[:-1], daoyan, star[0], star[1], quote)
结果:
需要的信息都已经提取出来了
三、完整代码
1、数据只有前25条,需要实现翻页
第二页:https://movie.douban.com/top250?start=25&filter=
第三页:https://movie.douban.com/top250?start=50&filter=
由此可见第一页可为https://movie.douban.com/top250?start=0&filter=
2、把提取的信息存在csv文档中
完整代码:
from bs4 import BeautifulSoup
import requests
import re
import csv
import timefile = open('豆瓣250.csv','w',encoding='utf-8',newline='')
csv_file = csv.writer(file)
csv_file.writerow(['排名','电影名称','电影信息','评分','评价人数','推荐语'])url1='https://movie.douban.com/top250?start={}&filter='
for pg in range(10):time.sleep(1)url=url1.format(pg*25)print('正在爬取第{}页,url是:{}'.format(pg+1,url))headers = { # headers就是一个请求头"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}response = requests.get(url, headers=headers)soup = BeautifulSoup(response.text, 'html.parser')item_list = soup.find_all('div',attrs={"class": "item"})for item in item_list:# 获取排行pic = item.find('div',attrs={"class": "pic"}).text # 获取排名# 获取电影名称title = item.find('div', attrs={'class': 'hd'}).find('a').text # 获取电影名称title = title.split('/')name = ''for i in title:i = i.replace('\n','').replace('\xa0','')i = i.strip()name += i +'/'# print('名字是:',name[:-1])# 获取导演信息p_list=item.find('div',attrs={"class": "bd"}).findAll('p')daoyan = p_list[0].text.replace('\n','').replace('\xa0','').strip()daoyan = re.sub(' {5,}','',daoyan)# 获取评分和评价人数star = item.find('div',attrs={"class": "star"}).text.split() # 列表返回:1、分数2、评价人数# 获取推荐语quote = item.find('p',attrs={'class': 'quote'})if quote:quote = quote.text.strip()# ['排名', '电影名称', '电影信息', '评分', '评价人数', '推荐语']csv_file.writerow([pic,name[:-1],daoyan,star[0],star[1],quote])
注:本代码只可用于学习。
Python爬虫:豆瓣电影 TOP 250相关推荐
- 【Python】Scrapy爬虫实战(豆瓣电影 Top 250)
今天一天都在弄Scrapy,虽然爬虫起来真的很快,很有效率,但是......捣鼓了一天 豆瓣电影 Top 250:https://movie.douban.com/top250 安装好的scrapy ...
- 【Python爬虫】爬取豆瓣电影Top 250
豆瓣电影 Top 250 导入第三方包 urllib模块介绍 引入模块 import urllib.request,urllib.parse,urllib.error 获取一个get请求 respos ...
- 不会 Python 没关系,手把手教你用 web scraper 抓取豆瓣电影 top 250 和 b 站排行榜
苏生不惑第190 篇原创文章,将本公众号设为 星标 ,第一时间看最新文章. 关于Python之前分享过很多文章了: Python 抓取知乎电影话题下万千网友推荐的电影,这个国庆节不愁没电影看了 王菲k ...
- 使用Python爬取豆瓣电影 Top 250
目录 前言 一.大致思路 1.导入第三方库 2.简单需求分析 二.代码解析 三.代码实现 四.总结一下 实现Python爬虫的基本思路: 1. 确定需求 2. 网站分析 3. 单一数据提取 4. 提取 ...
- 不会 Python 没关系,手把手教你用 web scraper 抓取豆瓣电影 top 250 和 b 站排行榜...
苏生不惑第190 篇原创文章,将本公众号设为星标,第一时间看最新文章. 关于Python之前分享过很多文章了: Python 抓取知乎电影话题下万千网友推荐的电影,这个国庆节不愁没电影看了 王菲k歌又 ...
- 第一篇CSDN博客 python爬虫豆瓣排名前250的电影
## 第一篇CSDN博客 python爬虫豆瓣排名前250的电影 1.首先,这是本宝宝的第一篇博客,嘿嘿,有点小激动,之所以采用CSDN发博客呢有两个原因,1是因为现在学的东西比较多,自己学着学着就忘 ...
- 豆瓣电影Top 250排行榜海报图片下载
1 需求 豆瓣电影Top 250排行榜海报图片下载,并实现持续化存储. 2 代码实现 import re import requests# 获取网页源代码 headers = {'User-Agent ...
- python爬虫—豆瓣电影海报(按类别)
原文地址:http://www.alannah.cn/2019/04/06/getdouban/ python爬虫-豆瓣电影海报 目标:通过python爬虫在豆瓣电影上按类别对电影海报等数据进行抓取, ...
- Python爬虫豆瓣电影top250
我的另一篇博客,Python爬虫豆瓣读书评分9分以上榜单 有了上次的基础,这次简单爬了下豆瓣上电影TOP250,链接豆瓣电影TOP250. 打开链接,查看网页源代码,查找我们需要的信息的字 ...
- 不会写Python代码如何抓取豆瓣电影 Top 250
说到爬虫,大多数人会想到用Python来做,毕竟简单好用,比如想抓取豆瓣电影top250 的所有电影数据. 简单的代码如下: import requests from bs4 import Beaut ...
最新文章
- 跨站访问如何保证session的正常使用
- 成绩表格模板MySQL_Mysql数据统计脚本模板
- Doom HDU - 5239(线段树+思维)
- 第十周项目1-程序填空与阅读(一)
- 【CodeForces - 144B 】Meeting (暴力枚举,水题,计算几何)
- 信佑无盘主服务器密码,(信佑无盘帮助手册.doc
- GridView自动序号
- js 正则练习之语法高亮
- 【转】JAVA 读写二进制文件
- 点击调试时提示MFC不包含调试信息
- HIT Software Construction Review Notes(1-1 Multi-Dimensional Views of Software Construction)
- hbase读写数据流程
- 很幽默的讲解六种Socket I/O模型C++程序设计
- nginx-2.nginx是什么
- dcs系统中数据服务器的冗余,如何提升DCS系统的可靠性?这篇文章讲透了
- C# ZipArchive 文件末端错误 的解决方案
- JavaWeb和WebGIS学习笔记(七)——MapGuide Open Source安装、配置以及MapGuide Maestro发布地图——超详细!目前最保姆级的MapGuide上手教程!
- 专升本C语言习题知识点笔记
- https请求,报错Could not establish trust relationship for the SSL/TLS secure channel
- UltraEdit-32 v13.20的注册码
热门文章
- 基于springboot的校园二手平台系统 Java
- 把页面直接转化成excel文件的web应用
- 关于数显模块方案和原理
- LED数显电动充气泵芯片方案
- 老外答高考英语试题 5人参加测试平均得79分
- 科大讯飞年报解析:营收日进5000万,连续10年涨幅25%,连续13年分红
- 新年愿望:希望学会点代码2021.1.1
- 2020寒假【gmoj2416】【Berry Picking】
- 大学生打伤猥亵女子保安遭刑拘:下次只会报警
- Spotfire调试经验——分组累计值的动态计算(Dynamic calculation of grouped accumulated value in Spotfire)