Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地

Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地

 

目录

Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地

一、简单介绍

二、实现原理

三、注意实现

四、实现步骤

五、代码


 

一、简单介绍

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。

爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。


爬虫的网页请求:

网页请求的过程分为两个环节:

  1. Request (请求):每一个展示在用户面前的网页都必须经过这一步,也就是向服务器发送访问请求。
  2. Response(响应):服务器在接收到用户的请求后,会验证请求的有效性,然后向用户(客户端)发送响应的内容,客户端接收服务器响应的内容,将内容展示出来,就是我们所熟悉的网页请求

Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第1张图片
 


         网页请求的方式也分为两种:

  1. GET:最常见的方式,一般用于获取或者查询资源信息,也是大多数网站使用的方式,响应速度快。
  2. POST:相比 GET 方式,多了以表单形式上传参数的功能,因此除查询信息外,还可以修改信息。

 

网页一般由三部分组成,分别是 HTML(超文本标记语言)、CSS(层叠样式表)和 JScript(活动脚本语言)

    HTML :

HTML 是整个网页的结构,相当于整个网站的框架。带“<”、“>”符号的都是属于 HTML 的标签,并且标签都是成对出现

常见的标签如下:

.. 表示标记中间的元素是网页
.. 表示用户可见的内容
..
表示框架

..

表示段落
  • ..
  • 表示列表 ..表示图片

    ..

    表示标题 ..表示超链接

    CSS:

    CSS 表示样式,图 1 中第 13 行<style type="text/css">表示下面引用一个 CSS,在 CSS 中定义了外观。

    JScript:

    JScript 表示功能。交互的内容和各种特效都在 JScript 中,JScript 描述了网站中的各种功能。


     

    二、实现原理

    1、import requests 进行网页数据请求获取;

    2、bs4(BeautifulSoup)进行获取数据的解析;

    3、把解析的数据保存到本地;

     

    三、注意实现

    1、对应安装相应的库(pip install requests 和 pip install beautifulsoup4);

    2、豆瓣网页有反爬虫机制,获取的时候添加 headers,进行爬虫伪装访问;

    3、解析的时候必要的使用把字符数据进行修剪清洗;

    4、把数据写入本地时候,注意可能需要编码格式(encoding=“utf-8”);

     

    四、实现步骤

    1、安装 requests 库和 beautifulsoup4库(如果已经安装,可忽略),如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第2张图片

     

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第3张图片

     

    2、在命令行中,使用 jupyter notebook 打开 jupyter 工具,会跳转打开一个网页,如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第4张图片

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第5张图片

     

    3、在页面 New 一个 Python,如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第6张图片

     

    4、打开 豆瓣网址 https://www.douban.com/doulist/39481377/ ,我们爬取该网站信息,jupyter 代码如下

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第7张图片

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第8张图片

     

    5、运行,会发现返回 418,说明豆瓣进行了反爬虫处理,如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第9张图片

     

    6、我们需要伪装进行爬虫,在豆瓣爬取页面上,右键 查看元素(浏览器不同,名字大同小异),然后网络中,点击一个成功的 Get 请求,参照请求头,我们伪装以下请求头 的 User-Agent 信息,如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第10张图片

     

    7、伪装请求头后,获取数据成功,如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第11张图片

     

    8、分析 html 内容,发现电影的相关的都在

    节点上,所以为了精确的到电影信息,可以先获取该节点上的内容,如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第12张图片

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第13张图片

     

    9、在分析每个电影信息都有 特征,我们可以根据这个获取所有单个的电影信息,如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第14张图片

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第15张图片

     

    10、继续分析,发现电影名字都在

    下,我们可以获取每个电影信息的该标签获得电影名称,并去除多余换行和空格保留到一个列表中,如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第16张图片

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第17张图片

     

    11、把列表中的数据写入本地,注意编码格式(建议为encoding="utf-8"),如下图

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第18张图片

    Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地_第19张图片

     

    五、代码

    # requests 获取网页信息
    import requests
    
    url = 'https://www.douban.com/doulist/39481377/'
    headers = {
        
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
    }
    
    response = requests.get(url,headers=headers)
    print(response)
    
    html = response.text
    print(html)
    
    # bs4 解析获取网页信息
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(html,"html.parser")
    movie_list = soup.find("div",class_="article")
    print(movie_list)
    
    movies = movie_list.find_all("div",class_="doulist-item")
    movie_names = []
    for movie in movies:
        print(movie)
    
    movie_names = []
    for movie in movies:
        movie_name = movie.find("div",class_="title").get_text()
        print(movie_name)
        movie_names.append(movie_name.strip() )  # 去除字符串前后的换行和空格
    
    
    for name in movie_names:
        print(name)
    
    # 把数据写入本地
    with open("movies.txt","w",encoding="utf-8") as f:
        for name in movie_names:
            f.write(name + '\n')

     

    你可能感兴趣的:(python,python,jupyter,爬虫,豆瓣电影数据爬取)