再次学习基础爬虫,爬取大学排名。
练习基础爬虫。对应的URL:http://www.zuihaodaxue.com/zuihaodaxuepaiming2018.html
分析:
先获取对应的全部代码:
查看一下获取了什么:
主函数中把其他的函数屏蔽掉。仅仅运行获取源代码所对应的函数:
结果:
总之很多!
接下来就研究别的!
稍微核心点的代码:
def filllist(ulist,html):n = 1soup = BeautifulSoup(html,"html.parser")for tr in soup.find('tbody').children:if isinstance(tr, bs4.element.Tag):#1.isinstance:判断一个对象是否是一个已知的类型,类似于type()#上面的isinstance函数类似检查类型!tds = tr('td')#存储为列表类型!if n == 1:print('tds类型:'+str(type(tds)))n += 1ulist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string])#tds是刚才存储的所有td标签所对应的内容。if n == 2:print(type(ulist))n += 1print(ulist[:6])
其中,
for tr in soup.find('tbody').children:
为递归寻找所有符合条件的tr标签。
tds类型:tds类型:<class 'bs4.element.ResultSet'>
ulist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string])追加数据。
解决对齐:
输出未对齐是因为,中英文空格大小不一致所导致的!
那么使用中文空格进行填充即可解决问题:
chr(12288)
tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}" #{3}:表示用第三个参数进行填充!
总体代码:
import requests
import re
from bs4 import BeautifulSoup
import bs4
def gethtmltxt(url):try:r = requests.get(url,timeout = 30)r.raise_for_status()r.encoding = r.apparent_encodingprint('获取到的全部内容!')# print(r.text)return r.textexcept:print('error')return ""
def filllist(ulist,html):n = 1soup = BeautifulSoup(html,"html.parser")for tr in soup.find('tbody').children:if isinstance(tr, bs4.element.Tag):#1.isinstance:判断一个对象是否是一个已知的类型,类似于type()#上面的isinstance函数类似检查类型!tds = tr('td')#存储为列表类型!if n == 1:print('tds类型:'+str(type(tds)))n += 1ulist.append([tds[0].string, tds[1].string, tds[2].string])#tds是刚才存储的所有td标签所对应的内容。if n == 2:print(type(ulist))n += 1print(ulist[:6])
def printlist(ulist,num):tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}"#{3}:表示用第三个参数进行填充!print(tplt.format("1","2","3",chr(12288)))for i in range(num):u = ulist[i]print(tplt.format(u[0], u[1], u[2],chr(12288)))#上面这个输出,功能是格式化输出!
def main():uinfo = []url = "http://www.zuihaodaxue.com/zuihaodaxuepaiming2018.html"html = gethtmltxt(url)filllist(uinfo,html)printlist(uinfo,20)print('see--uinfo')# print(uinfo)
main()
结果:
再次学习基础爬虫,爬取大学排名。相关推荐
- python爬虫爬取大学排名并存入数据库进行数据可视化
这是本人的期末大作业,题目要求如下: 对中国大学专业排名网站中2021年,计算机科学与技术专业,进行数据爬取和数据可视化. URL地址:https://www.shanghairanking.cn/r ...
- python实例,python网络爬虫爬取大学排名!
源代码: import requests from bs4 import BeautifulSoup import bs4def getHTMLText(url):try:r = requests.g ...
- Jsoup学习 JAVA爬虫爬取美女网站 JAVA爬虫爬取美图网站 爬虫
最近对爬虫起了兴趣,但是网上都说做爬虫最好得语言是py.但是我只会java,所以就想能不能用java实现一个爬虫,百度搜索发现,其实java也有很多优秀得开源爬虫框架,包括Gecco,webmagic ...
- Python爬虫学习 6 —— 使用bs4库爬取大学排名
前面学了如何使用beautifulsoup,现在来尝试简单的爬取:中国大学排名 一.准备 查看Robots协议:robots协议 功能描述 输入:大学排名的url链接 输出:大学排名信息(排名,大学名 ...
- 爬取大学排名和NBA球星数据并进行多维度可视化
opexcel 模块地址:https://blog.csdn.net/wei_zhen_dong/article/details/105318970 import requests from lxml ...
- 跟潭州学院的强子老师学习网络爬虫---爬取全书网
真是太白了,python之路还有很长,今天我从这里开始,留作自己备忘.2018-04-05 花了一个下午学习个爬小说的,总的来说是因为自己没什么基础,哪里不会补哪里,磕磕绊绊的,总算是能运行,先把代码 ...
- python学习笔记爬虫——爬取智联招聘信息
目的:自己输入指定地方,指定职业,起始页数,程序会自动打印页面的所有信息. 实现过程:这次程序的代码跟以往的都不一样,这次也是我第一次使用面向对象式编程,并且并不是分析网页代码,分析json字符串得到 ...
- 爬虫爬取最好大学排名
☞☞☞点击查看更多优秀Python博客☜☜☜ 爬虫爬取最好大学排名 **程序设计思路:** 代码细节分析 得到源代码函数分析 得到特定的tr标签函数分析 ==**文章导航:==** 最近跟着北京理工大 ...
- 爬虫爬取中国大学排名top100并简单可视化分析
爬虫爬取中国大学排名top100并简单可视化分析. 目标链接 http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html 实践环境 pycharm201 ...
最新文章
- 20170804 - 今日技能封装 - Q
- CentOS 下线,TencentOS Server 全新登陆带来最强支持
- 带权中位数-算法导论第三版第九章思考题9-2
- Java集合unmodifiableSortedSet()方法(带示例)
- 自定义按钮动态变化_新闻价值的变化定义
- 两台虚拟服务器如何级联,[教程] 利用open vswitch建立vxlan隧道实现不同主机上的虚拟交换机级联...
- [cerc2012][Gym100624A]20181013
- Hibernate 中upate,savaOrUpdate,merge的区别
- 旧的非flash版Metalink的入口
- P3223 [HNOI2012]排队
- eclipse 使用心得
- C/C++ 解决sizeof求结构体大小(结构体内存对齐)
- Java程序员的第一个Python小程序:京东畅销书榜爬虫
- mysql关系范式试题_数据库范式练习题
- python问题 Traceback (most recent call last)
- 【转载】客单价是什么意思?如何提高客单价?
- EMI-EMC设计注意事项
- 你是工作狂?也许你只是”工作上瘾“了
- 【机器翻译】机器翻译入门
- matlab rho是什么意思,rho(rho值是什么意思)