当前位置: 首页 > news >正文

【详细步骤解析】爬虫小练习——爬取豆瓣Top250电影,最后以csv文件保存,附源码

豆瓣top250

在这里插入图片描述

主要步骤

1.发送请求,根据url地址,然后送请求
2.获取数据,获取服务器返回的响应的内容
3.解析数据:提取想要爬取的内容
4.保存数据:将得到的数据保存为文档

具体实施

#豆瓣top250
import csv                          #引入csv模块
import requests                     #引入请求模块
import time                         #引入时间模块
import parsel                      #导入数据解析模块#打开一个csv文件并进行操作,将来数据要存储在csv文件中f=open('豆瓣Top250'+'.csv',mode='a',encoding='utf-8-sig',newline='') #newline,每行写入的时候都不会产生一个空行#加表头,表的第一列
writer=csv.DictWriter(f,fieldnames=[    '电影名' ,'导演演员' ,'种类','评分' ,'评论人数' ,'简介',])
writer.writeheader()  #将这些字段写入
number=1 #多页获取,页数for page in range(0,250,25):print(f'正在爬取第{number}页数据')number=number+1time.sleep(1) #睡眠一秒#第一步:发送请求,确定url地址,然后对其发送请求#url='https://movie.douban.com/top250'                                                #想要爬取的地址url=f'https://movie.douban.com/top250?start={page}&filter='   #伪装成浏览器去访问,发送请求,User-Agent:浏览器的标识,基本信息headers={                                                                            #注意是键值对'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.35'}                                                                                    #第二步:获取数据,获取服务器返回的响应的内容response=requests.get(url=url,headers=headers)                                       #传递相应的内容,获取服务器返回的响应数据内容#第三步:解析数据,提取想要的内容selector=parsel.Selector(response.text)                                              #解析css里面的选择器lis=selector.css('#content > div > div.article > ol > li')                           #获取所有的li标签#找到大的li标签,再通过for循环找出每个小的标签for li in lis:title_list=li.css('div > div.info > div.hd > a > span:nth-child(1)::text').getall()                  #获取电影名称,这里只获取中文名#这里用li而不用Selector是因为从li中获取,这是根据for后面的决定的move_info=li.css('div > div.info > div.bd > p:nth-child(1)::text').getall()                          #获取电影的详细信息move_comments=li.css('div > div.info > div.bd > div>span::text').getall()                                 #获取电影的评论move_simple=li.css('div > div.info > div.bd > p.quote > span::text').getall()                          #获取电影简介#getall返回的是列表,所以需要join新的分隔符,连接返回新的字符串title=''.join(title_list)actor=move_info[0]                                                                                   #导演,演员plot=move_info[1]                                                                                    #种类scope=move_comments[0]                                                                               #评分pnum=move_comments[1]                                                                                #评论人数intro=''.join(move_simple)                                                                           #电影简介#第四步:保存数据,将得到的数据保存为文档#装载数据dit={'电影名' : title,'导演演员' : actor,'种类': plot,'评分': scope,'评论人数': pnum,'简介': intro,}writer.writerow(dit)   
http://www.dtcms.com/a/600685.html

相关文章:

  • Docker-存储
  • wap手机网站模板上饶网站建设3ao cc专业a
  • 【Nginx】Nginx 多协议负载均衡实战:StarRocks 与 MinIO 代理配置全解析
  • 域名注册和网站设计服务如何做贴吧类网站多钱
  • python+uniapp基于微信小程序的垃圾分类信息系统
  • C语言编译器安卓版 | 强大功能助力编程学习与实践
  • STM32使用金属探测传感器自制金属探测仪
  • vmware嵌套安装esxi7.0.3扩容vmfs
  • 使用 BR 备份 TiDB 到 AWS S3 存储
  • 【OpenCV + VS】OpenCV 绘图:绘制矩形、圆形、椭圆形、线条等
  • 易语言反编译工具 - 高效破解易语言程序的利器
  • 11年始终专注营销型网站提供网站建设小程序制作
  • AOSP Android13 Launcher3——TransformParams 类
  • 网站推广问题推广公司网站有哪些方式
  • 成都网站建设公司电话美食网站建设多少钱
  • 【把Linux“聊”明白】进程的概念与状态
  • GIT版本管理工具轻松入门 | TortoiseGit,本地 Git 仓库和 Git 概念,笔记02
  • 什么是美颜sdk?美型功能开发与用户体验优化实战
  • 在 React 项目中使用 Ky 与 TanStack Query 构建现代化数据请求层
  • 计算机网络---传输层安全 SSL与TLS
  • 【Linux篇】信号机制深度剖析:从信号捕捉到SIGCHLD信号处理
  • C语言编译软件选择及优化建议
  • Linux 之 【冯诺依曼体系结构与操作系统的简介】
  • 潍坊建设gc局网站windows优化软件
  • Java虚拟机(JVM)面试题(51道含答案)
  • [27] cuda 应用之 核函数实现图像通道变换
  • Aurora RDS MySQL The table ‘/rdsdbdata/tmp/#sql14b_df16d_1bd‘ is full
  • 手机响应式网站怎么做how to use wordpress
  • 网易云音乐回应“不适配鸿蒙”:推动相关部门加快步伐
  • C语言在线编译练习 | 提高编程技能与实战能力