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

前言

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

这个系列是干什么的

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

目录

  • 1, 网络爬虫基础知识

  • 2, 模拟登录

  • 3, 获取成绩

学习网络爬虫必备的知识

  • HTML 帮助你了解网页的结构

  • TCP/IP协议和HTTP协议 帮助你了解网络请求和网络传输的基本原理

  • Python

网络爬虫基础知识

什么是网络爬虫?

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

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

需要网络爬虫来干什么?

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

扫描二维码关注公众号,回复: 5642785 查看本文章

网络爬虫的步骤是什么?

  • 1, 获取 HTML 数据

  • 2, 解析数据

  • 3, 保存数据

编写第一个网络爬虫

下载网页

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

 
  1. from urllib.request import urlopen

  2. def download(url):

  3. html = urlopen(url=url)

  4. return html.read()

  5. url = "http://pythonscraping.com/pages/page1.html"

  6. print(download(url))

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

BeautifulSoup 简介

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

安装 BeautifulSoup

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

 
  1. pip install bs4

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

 
  1. Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32

  2. Type "help", "copyright", "credits" or "license" for more information.

  3. >>> import bs4

  4. >>>

没有报错说明安装成功。

运行 BeautifulSoup

修改上个例子的代码

 
  1. from urllib.request import urlopen

  2. from bs4 import BeautifulSoup

  3. url = "http://pythonscraping.com/pages/page1.html"

  4. html = urlopen(url=url)

  5. bsObj = BeautifulSoup(html.read(), "lxml")

  6. print(bsObj.h1)

输出的结果是:

 
  1. <h1>An Interesting Title</h1>

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

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

requests 简介

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

安装 requests

跟安装 bs4 一样。

**完整代码加群:683380553 获取!**
  1. pip install requests

基本用法

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

 
  1. import requests

  2. from bs4 import BeautifulSoup

  3. url = "http://pythonscraping.com/pages/page1.html"

  4. html = requests.get(url=url)

  5. bsObj = BeautifulSoup(html.text, "lxml")

  6. print(bsObj.h1)

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

 
  1. <h1>An Interesting Title</h1>

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

总结

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

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

猜你喜欢

转载自blog.csdn.net/qq_42156420/article/details/88778164