要求:爬取豆瓣电影 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相关推荐

  1. 【Python】Scrapy爬虫实战(豆瓣电影 Top 250)

    今天一天都在弄Scrapy,虽然爬虫起来真的很快,很有效率,但是......捣鼓了一天 豆瓣电影 Top 250:https://movie.douban.com/top250 安装好的scrapy ...

  2. 【Python爬虫】爬取豆瓣电影Top 250

    豆瓣电影 Top 250 导入第三方包 urllib模块介绍 引入模块 import urllib.request,urllib.parse,urllib.error 获取一个get请求 respos ...

  3. 不会 Python 没关系,手把手教你用 web scraper 抓取豆瓣电影 top 250 和 b 站排行榜

    苏生不惑第190 篇原创文章,将本公众号设为 星标 ,第一时间看最新文章. 关于Python之前分享过很多文章了: Python 抓取知乎电影话题下万千网友推荐的电影,这个国庆节不愁没电影看了 王菲k ...

  4. 使用Python爬取豆瓣电影 Top 250

    目录 前言 一.大致思路 1.导入第三方库 2.简单需求分析 二.代码解析 三.代码实现 四.总结一下 实现Python爬虫的基本思路: 1. 确定需求 2. 网站分析 3. 单一数据提取 4. 提取 ...

  5. 不会 Python 没关系,手把手教你用 web scraper 抓取豆瓣电影 top 250 和 b 站排行榜...

    苏生不惑第190 篇原创文章,将本公众号设为星标,第一时间看最新文章. 关于Python之前分享过很多文章了: Python 抓取知乎电影话题下万千网友推荐的电影,这个国庆节不愁没电影看了 王菲k歌又 ...

  6. 第一篇CSDN博客 python爬虫豆瓣排名前250的电影

    ## 第一篇CSDN博客 python爬虫豆瓣排名前250的电影 1.首先,这是本宝宝的第一篇博客,嘿嘿,有点小激动,之所以采用CSDN发博客呢有两个原因,1是因为现在学的东西比较多,自己学着学着就忘 ...

  7. 豆瓣电影Top 250排行榜海报图片下载

    1 需求 豆瓣电影Top 250排行榜海报图片下载,并实现持续化存储. 2 代码实现 import re import requests# 获取网页源代码 headers = {'User-Agent ...

  8. python爬虫—豆瓣电影海报(按类别)

    原文地址:http://www.alannah.cn/2019/04/06/getdouban/ python爬虫-豆瓣电影海报 目标:通过python爬虫在豆瓣电影上按类别对电影海报等数据进行抓取, ...

  9. Python爬虫豆瓣电影top250

      我的另一篇博客,Python爬虫豆瓣读书评分9分以上榜单   有了上次的基础,这次简单爬了下豆瓣上电影TOP250,链接豆瓣电影TOP250.   打开链接,查看网页源代码,查找我们需要的信息的字 ...

  10. 不会写Python代码如何抓取豆瓣电影 Top 250

    说到爬虫,大多数人会想到用Python来做,毕竟简单好用,比如想抓取豆瓣电影top250 的所有电影数据. 简单的代码如下: import requests from bs4 import Beaut ...

最新文章

  1. 跨站访问如何保证session的正常使用
  2. 成绩表格模板MySQL_Mysql数据统计脚本模板
  3. Doom HDU - 5239(线段树+思维)
  4. 第十周项目1-程序填空与阅读(一)
  5. 【CodeForces - 144B 】Meeting (暴力枚举,水题,计算几何)
  6. 信佑无盘主服务器密码,(信佑无盘帮助手册.doc
  7. GridView自动序号
  8. js 正则练习之语法高亮
  9. 【转】JAVA 读写二进制文件
  10. 点击调试时提示MFC不包含调试信息
  11. HIT Software Construction Review Notes(1-1 Multi-Dimensional Views of Software Construction)
  12. hbase读写数据流程
  13. 很幽默的讲解六种Socket I/O模型C++程序设计
  14. nginx-2.nginx是什么
  15. dcs系统中数据服务器的冗余,如何提升DCS系统的可靠性?这篇文章讲透了
  16. C# ZipArchive 文件末端错误 的解决方案
  17. JavaWeb和WebGIS学习笔记(七)——MapGuide Open Source安装、配置以及MapGuide Maestro发布地图——超详细!目前最保姆级的MapGuide上手教程!
  18. 专升本C语言习题知识点笔记
  19. https请求,报错Could not establish trust relationship for the SSL/TLS secure channel
  20. UltraEdit-32 v13.20的注册码

热门文章

  1. 基于springboot的校园二手平台系统 Java
  2. 把页面直接转化成excel文件的web应用
  3. 关于数显模块方案和原理
  4. LED数显电动充气泵芯片方案
  5. 老外答高考英语试题 5人参加测试平均得79分
  6. 科大讯飞年报解析:营收日进5000万,连续10年涨幅25%,连续13年分红
  7. 新年愿望:希望学会点代码2021.1.1
  8. 2020寒假【gmoj2416】【Berry Picking】
  9. 大学生打伤猥亵女子保安遭刑拘:下次只会报警
  10. Spotfire调试经验——分组累计值的动态计算(Dynamic calculation of grouped accumulated value in Spotfire)