美文网首页大数据 爬虫Python AI SqlPython小哥哥
利用Python来查询自己的成绩!想改成绩吗?我教你啊!

利用Python来查询自己的成绩!想改成绩吗?我教你啊!

作者: 14e61d025165 | 来源:发表于2019-03-24 16:19 被阅读3次

    前言

    前段时间在公众号发布了一篇用Python网络爬虫来获取百度贴吧某帖子内所有图片的文章。写的确实不好。很多地方连我自己都搞不明白,这篇文章笔者尽量把它写好,写明白。还望各位大佬海涵。
    这个系列是干什么的

    这个系列主要是针对本校教务网进行一个网络爬虫,爬取的内容就是学生的成绩,如果要从爬虫基础开始写估计篇幅有点大,于是笔者打算做成一个系列进行连载,初步估计会有三、四篇,具体情况再说。
    目录

    1, 网络爬虫基础知识
    
    2, 模拟登录
    
    3, 获取成绩
    

    学习网络爬虫必备的知识

    HTML 帮助你了解网页的结构
    
    TCP/IP协议和HTTP协议 帮助你了解网络请求和网络传输的基本原理
    
    Python
    

    网络爬虫基础知识
    什么是网络爬虫?

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
    

    以上是百度百科对网络爬虫的解释。
    按照我的理解其实就是:从网页上获取我们所需要的数据。
    需要网络爬虫来干什么?

    这就是本系列的重点了,学习一门新的知识总要拿它去做点什么。一开始我就说过,本系列的目的是获取自己的成绩,然后保存下来。这个需求很简单,只要拿到成绩数据就可以了。
    网络爬虫的步骤是什么?

    1, 获取 HTML 数据
    
    2, 解析数据
    
    3, 保存数据
    

    编写第一个网络爬虫
    下载网页

    要想爬取网页,首先得要把网页下载下来。

    from urllib.request import urlopen
    
    
    def download(url):
    
        html = urlopen(url=url)
    
        return html.read()
    
    
    url = "http://pythonscraping.com/pages/page1.html"
    
    print(download(url))
    

    这段代码使用 Python 的 urllib 模块下载 URL。
    当传入 URL 参数时,该函数会下载网页并返回其 HTML。
    BeautifulSoup 简介

    BeautifulSoup库的功能是用来解析我们下载好的 HTML。它通过定位 HTML 标签来格式化和组织复杂的网络信息。
    安装 BeautifulSoup

    这里网上有很多教程,就不详细说明,直接在 cmd 敲入下面这行命令就可以安装了。

    pip install bs4
    

    安装成功后测试一下。
    在 Python 终端里导入

    Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
    
    Type "help", "copyright", "credits" or "license" for more information.
    
    >>> import bs4
    
    >>>
    

    没有报错说明安装成功。
    运行 BeautifulSoup

    修改上个例子的代码
    完整代码加群:683380553 获取!

    from urllib.request import urlopen
    
    from bs4 import BeautifulSoup
    
    
    url = "http://pythonscraping.com/pages/page1.html"
    
    html = urlopen(url=url)
    
    bsObj = BeautifulSoup(html.read(), "lxml")
    
    print(bsObj.h1)
    

    输出的结果是:

    <h1>An Interesting Title</h1>
    

    导入 urlopen,然后调用html.read() 获取网页的 HTML 内容。这样就可以把 HTML 内容传到 BeautifulSoup 对象。然后对 BeautifulSoup 对象进行操作。bsObj.h1 是从对象里提取 h1 标签。

    这样,一个简单的网络爬虫就写好了。
    关于 BeautifulSoup 其他的用法会在之后的文章里提到,大家也可以自行上网学习。
    requests 简介

    requests 是 python 实现的简单易用的 HTTP 库,使用起来比 urllib 简洁很多。
    安装 requests

    跟安装 bs4 一样。

    pip install requests
    

    基本用法

    requests.get() 用于请求目标网站,类型是一个HTTPresponse类型。

    import requests
    
    from bs4 import BeautifulSoup
    
    
    url = "http://pythonscraping.com/pages/page1.html"
    
    html = requests.get(url=url)
    
    bsObj = BeautifulSoup(html.text, "lxml")
    
    print(bsObj.h1)
    

    这里 html.text是以文本的形式打印网页源码。
    输出结果是:

    <h1>An Interesting Title</h1>
    

    比较一下 urllib 是不是简洁很多?后续的文章当中都会使用 requests 库。大家可以去官网学习一下这个库的用法。
    总结

    首先笔者介绍了什么是网络爬虫,以及自己动手编写一个简单网络爬虫程序。
    安装了两个网络爬虫非常棒的第三方库,简单的说明了这两个第三方库的用法。

    这篇文章没有干货,有些地方写得可能生涩难懂,请大家见谅,有什么问题可以在后台留言,我都会一一回复,谢谢大家。

    相关文章

      网友评论

        本文标题:利用Python来查询自己的成绩!想改成绩吗?我教你啊!

        本文链接:https://www.haomeiwen.com/subject/aimuvqtx.html