前言:这是我发布的第一个技术文章.记录分享我的学习笔记
第一次发文章可能会写得不好,但我相信经过以后的累积或许会得到改善吧..
=========华丽分割线=============
注意:这里需要一定的python基础,这里自行搜索廖雪峰python,他的教程说的很详细而且通俗易懂,适合0基础的同学参考.
回到正题,可以先从简单的静态网页爬取开始,今天要爬取的是2018大学排行榜.在开始之前,推荐同学们去看下中国MOOC上北京理工大学嵩天老师的视频,Python网络爬虫与信息提取(链接提供不了,同学们可以自行搜索)
这个练习就是出自这位老师的视频的
运行平台:Windows
Python版本:Python3.6x
IDE:Sublime Text Python自带IDLE
其他:FireFox浏览器
简述流程为:
1)简单利用IDE测试网页
运行效果为:(部分效果)
这里表示已经成功利用python访问了这个网页
2)分析
浏览器上查看网页信息→从网页中获取HTML文本→提取网页信息并存入合适的数据结构→利用数据结构输出结果
打开网页可以看到
,好不着急,我们就是要爬取排行榜的内容,有点HTML基础的同学相信已经看出来了,没错,这是一个表格,里面就是存储我们要获取的内容,没有看懂这里的同学不用丧气,来!跟着我.
鼠标右键→查看网页代码
CTRL+F搜索关键字"清华大学"看看呗
哦吼!看到搜索结果了.定位到的这个标签,ok.写代码的时候用Python直接定位到这里,排除不需要的信息
3)编写代码
需要引用的库:
import requests
from bs4 import BeautifulSoup
import bs4
图片中代码已有详细的注释.
定义一个框架,get_one_page()函数来获取html网页信息,使用try,except来获取
定义get_one_list()将获取的信息存储到列表中
定义print_one_list()打印输出格式化列表
首先来理解一下tplt这个字符串的结构,如图所示:
关于chr(12288)则是嵩天老师在优化中文对齐时提到的,因为中文字符对齐与英文字符对齐的宽度不一样,所以用chr(12288)使得采用中文字符的空格对齐。
定义主函数main()并调用
#这个10是我想获取排名的数量
最后加以改进
运行代码效果如下:
OK..大功告成
END
领取专属 10元无门槛券
私享最新 技术干货