• Python 爬虫实战入门(上)


     

    之前为了工作需要,写了不少爬虫小程序,和同事们聊得过程中发现,很多人对爬虫还是停留在听说过的阶段,基于这个原因,特意写点适合小白看的,希望大家能对爬虫有个小认知。

    工欲善其事必先利其器,既然要写爬虫,那第一步,就是环境准备,先来看看我们需要的基础环境。

    操作系统:Windows 10

    Python版本:Python 3.6

    代码编辑运行环境:个人推荐PyCharm社区版。

    依赖第三方库:

    requests:一个方便、简洁、高效且人性化的HTTP请求库

    BeautifulSoup:HTML解析库

    安装的话,本身步骤并不是很复杂,我们来看看。

    1.安装Python运行环境

     

    从python官网可以进行下载

    https://www.python.org/downloads/release/python-365/

    安装的时候注意选中把python3.6添加到path,然后点击Customize installation

     

    确认pip是选中的

     

     

    2.安装pycharm

     

    可以从官网下载pycharm社区版,安装教程可以百度

    https://www.jetbrains.com/pycharm/download/#section=windows

    3.安装第三方依赖库

     

    这里给大家介绍两种安装方式:

    第一种是选用pip安装:在cmd中运行pip install requests 或者 pip install bs4

     

    另外一种我们可以借助pycharm安装,在pycharm中选择File->settings->Project Interpreter中,点击右边的+,然后输入我们需要安装的第三方库

     

    这样我们基本爬虫需要的环境就配置好了,那接下来,就开始我们愉快的爬虫之旅吧。

    那开始实战之前,我们先来分析一下我们的爬虫需要完成一个什么样的流程。

    人工抓取页面数据做法

    1:打开我们需要分析的网页,我们以豆瓣电影top 250 为例:

    https://movie.douban.com/top250

     

    2:确认我们需要保存的数据,我们在这将影片名字,评分和一句话评价保存下来,那就是将每条里面的数据copy并复制下来

     

    3: 因为当前页面只能展示25条,那我们需要对后续的网页进行顺序读取,确认我们将250条都读取出来。

    那根据对人工动作的分析,我们可以对我们的程序进行以下分析

    1. 我们需要有一个可以爬取页面请求的动作

    2. 我们需要对爬取下来的页面进行分析

    3. 我们需要对页面请求进行一个循环,将250条数据都爬取下来

    那基于这些需求,我们首先需要做的就是对页面请求进行爬取,那在这里,给大家介绍一个页面请求的库,就是requests。

    这里是它的基本文档介绍:

    https://requests.readthedocs.io/zh_CN/latest/

    看它的介绍:Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。就知道这是一个非常简单好用的网络库了。

    我们先来看一下怎么爬取第一个网页 (test1.py)

     

    运行一下看看效果

     

    根据打印出来的内容,我们可以看到,第一个网页已经被我们爬取下来了,那接下来,我们就需要分析一下后续网页有什么规律可以让我们使用

    第一页:https://movie.douban.com/top250

    第二页:https://movie.douban.com/top250?start=25&filter=

    第三页:https://movie.douban.com/top250?start=50&filter=

    第四页:https://movie.douban.com/top250?start=75&filter=

    我们可以看出来,从第二页开始,每一个连接后面都需要一个start的参数,而且是以25递增的,那我们可以对我们的程序进行以25递增的获取页面(test2.py):

     

    到这里,我们已经可以将网页都爬取下来了,那下一步要做的就是对我们需要的内容进行提取了,我们下一次来实现内容提取。

    本文所有代码都可以在github上下载,链接地址为:

    https://github.com/chrisblue0605/testspider_for_py.git

    作 者:Testfan Chris

    出  处:微信公众号:自动化软件测试平台

    版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

     
  • 相关阅读:
    The hardest problem ever
    1146 Topological Order
    1147 Heaps
    Weekly Contest 184
    1148 Werewolf
    1149 Dangerous Goods Packaging
    1150 Travelling Salesman Problem
    1151 LCA in a Binary Tree (30point(s))
    1152 Google Recruitment
    美团2020春招笔试
  • 原文地址:https://www.cnblogs.com/testfan2019/p/12525255.html
Copyright © 2020-2023  润新知