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

简介: 【详细步骤解析】爬虫小练习——爬取豆瓣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)
相关文章
|
1月前
|
数据采集 中间件 Python
Scrapy爬虫:利用代理服务器爬取热门网站数据
Scrapy爬虫:利用代理服务器爬取热门网站数据
|
1天前
|
XML 数据采集 前端开发
五:爬虫-数据解析之xpath解析
本篇文章主要讲述了数据解析中的xpath解析,及相对路径的定位语法。最后以爬取豆瓣top250首页作为示例总结
17 5
五:爬虫-数据解析之xpath解析
|
2天前
|
数据采集 存储 JavaScript
(2024)豆瓣电影详情内容爬虫详解和源码
这是一个Python爬虫程序,用于抓取豆瓣电影详情页面如`https://movie.douban.com/subject/1291560/`的数据。它首先发送GET请求,使用PyQuery解析DOM,然后根据`<br>`标签分割HTML内容,提取电影信息如导演、演员、类型等,并将中文键转换为英文键存储在字典中。完整代码包括请求、解析、数据处理和测试部分。当运行时,会打印出电影详情,如导演、演员列表、类型、时长等。
14 1
 (2024)豆瓣电影详情内容爬虫详解和源码
|
3天前
|
数据采集 存储 JavaScript
(2024)豆瓣电影TOP250爬虫详细讲解和代码
这是一个关于如何用Python爬取2024年豆瓣电影Top250的详细教程。教程涵盖了生成分页URL列表和解析页面以获取电影信息的函数。`getAllPageUrl()` 生成前10页的链接,而`getMoiveListByUrl()` 使用PyQuery解析HTML,提取电影标题、封面、评价数和评分。代码示例展示了测试这些函数的方法,输出包括电影详情的字典列表。
25 3
|
12天前
|
数据采集 存储 JSON
豆瓣电影信息爬虫实战-2024年6月
使用Python和`requests`、`PyQuery`库,本文教程教你如何编写一个豆瓣电影列表页面的爬虫,抓取电影标题、导演、主演等信息。首先确保安装所需库,然后了解技术栈,包括Python、Requests、PyQuery和正则表达式。爬虫逻辑包括发送HTTP请求、解析HTML、提取数据。代码示例展示了如何实现这一过程,最后运行爬虫并将结果保存为JSON文件。注意遵守网站使用条款和应对反爬策略。
33 2
|
1月前
|
数据采集 网络安全 UED
揭秘豆瓣网站爬虫:利用lua-resty-request库获取图片链接
本文探讨了如何使用Lua的lua-resty-request库和爬虫代理IP技术从豆瓣网站高效获取图片链接。通过定制请求头部和代理服务,可以应对反爬虫机制,提高爬虫的稳定性和匿名性。示例代码展示了一种方法,但实际应用需考虑版权和法律法规。
揭秘豆瓣网站爬虫:利用lua-resty-request库获取图片链接
|
4天前
|
数据采集 前端开发 JavaScript
Python爬虫技术:动态JavaScript加载音频的解析
Python爬虫技术:动态JavaScript加载音频的解析
|
20天前
|
数据采集 存储 NoSQL
Java爬虫-爬取疫苗批次信息
为了解决疫苗批号查询难题,作者因个人情况需查询脊髓灰质炎灭活疫苗信息,发现官网查询系统不便使用。于是,技术大展身手,编写了一个Java爬虫,利用Hutool、Jsoup和Spring Boot的MongoDB库,抓取并存储了中国食品药品检定研究院等多家机构近十年的疫苗批次信息。代码示例展示了如何爬取数据并存入MongoDB,方便按需查询。
46 0
|
1月前
|
数据采集 存储 JavaScript
Buzz库网络爬虫实例:快速爬取百度搜索实时热点
Buzz库网络爬虫实例:快速爬取百度搜索实时热点
|
1月前
|
数据采集 存储 大数据
Python爬虫:数据获取与解析的艺术
本文介绍了Python爬虫在大数据时代的作用,重点讲解了Python爬虫基础、常用库及实战案例。Python因其简洁语法和丰富库支持成为爬虫开发的优选语言。文中提到了requests(发送HTTP请求)、BeautifulSoup(解析HTML)、Scrapy(爬虫框架)、Selenium(处理动态网页)和pandas(数据处理分析)等关键库。实战案例展示了如何爬取电商网站的商品信息,包括确定目标、发送请求、解析内容、存储数据、遍历多页及数据处理。最后,文章强调了遵守网站规则和尊重隐私的重要性。
40 2

热门文章

最新文章

推荐镜像

更多