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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 【详细步骤解析】爬虫小练习——爬取豆瓣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+1
    time.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)
相关文章
|
8天前
|
数据采集 前端开发 API
SurfGen爬虫:解析HTML与提取关键数据
SurfGen爬虫:解析HTML与提取关键数据
|
8天前
|
数据采集 Web App开发 监控
深度解析:使用ChromeDriver和webdriver_manager实现无头浏览器爬虫
在现代网络爬虫实践中,动态网页加载和反爬虫机制增加了数据采集的难度。采用无头浏览器技术(如Selenium与ChromeDriver)可有效模拟用户行为、执行JavaScript,获取动态内容。通过设置代理IP、伪装User-Agent和处理Cookies,提升爬虫隐蔽性和稳定性。该方案适用于电商价格监控、社交媒体数据采集和招聘信息抓取等场景,实现更高效的数据获取。
深度解析:使用ChromeDriver和webdriver_manager实现无头浏览器爬虫
|
1月前
|
安全 网络协议 应用服务中间件
2025通配符证书免费申请步骤解析
打造安全、高效的网站加密环境,从免费通配符SSL证书开始!今年我们特别推出免费通配符SSL证书申请活动,覆盖主域名及所有子域名。只需一次申请,即可保护无限子域名,节省时间和资源。全程0成本,自动化流程快速配置,权威CA机构签发,兼容主流浏览器与平台。非技术人员也能轻松操作,提升网站安全性与用户信任度。立即访问JoySSL官网注册并申请,享受顶级加密服务!
|
1月前
|
数据采集 供应链 API
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
89 3
|
2月前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
2月前
|
数据采集 存储 JavaScript
网页爬虫技术全解析:从基础到实战
在信息爆炸的时代,网页爬虫作为数据采集的重要工具,已成为数据科学家、研究人员和开发者不可或缺的技术。本文全面解析网页爬虫的基础概念、工作原理、技术栈与工具,以及实战案例,探讨其合法性与道德问题,分享爬虫设计与实现的详细步骤,介绍优化与维护的方法,应对反爬虫机制、动态内容加载等挑战,旨在帮助读者深入理解并合理运用网页爬虫技术。
|
2月前
|
前端开发 JavaScript
React 步骤条组件 Stepper 深入解析与常见问题
步骤条组件是构建多步骤表单或流程时的有力工具,帮助用户了解进度并导航。本文介绍了在React中实现简单步骤条的方法,包括基本结构、状态管理、样式处理及常见问题解决策略,如状态管理库的使用、自定义Hook的提取和CSS Modules的应用,以确保组件的健壮性和可维护性。
83 17
|
2月前
|
数据采集
动态代理与静态代理在爬虫解析的优缺点
随着科技和互联网的发展,越来越多企业需要使用代理进行数据抓取。本文介绍了HTTP动态代理与静态代理的区别,帮助您根据具体需求选择最佳方案。动态代理适合大规模、高效率的爬取任务,但稳定性较差;静态代理则适用于小规模、高稳定性和速度要求的场景。选择时需考虑目标、数据量及网站策略。
66 4
|
3月前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
3月前
|
数据采集 存储 Web App开发
Java爬虫:深入解析商品详情的利器
在数字化时代,信息处理能力成为企业竞争的关键。本文探讨如何利用Java编写高效、准确的商品详情爬虫,涵盖爬虫技术概述、Java爬虫优势、开发步骤、法律法规遵守及数据处理分析等内容,助力电商领域市场趋势把握与决策支持。

推荐镜像

更多