关于最好大学网的爬虫
暑期在家看了慕课的爬虫视频,然后练练手这是我的关于最好大学网的一次爬虫。新手上路,错误难免。
下面是我对这次爬虫的理解
一:关于最好大学网
二:下面代码
// Auther Dath
// 2019/7/23
import requests
import lxml
from bs4 import BeautifulSoup
import bs4
import pandas as pd
def GetHtmlText(url,headers):
try:
r = requests.get(url, headers)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "访问异常错误"
def GetUniverList(ulist,html):
soup = BeautifulSoup(html,'lxml')
for tr in soup.find('tbody').children:
if isinstance(tr, bs4.element.Tag): #筛选出bs4.element.Tag的类型
tds = tr('td')
ulist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string, tds[4].string, tds[5].string, tds[6].string, tds[7].string, tds[8].string, tds[9].string,
tds[10].string, tds[11].string, tds[12].string, tds[13].string])
def WriteToFile(ulist):
name = ['排名', '学校名称', '省市', '总分', '生源质量(新生高考成绩得分)', '培养结果(毕业生就业率)', '社会声誉(社会捐赠收入千元)',
'科研规模(论文数量篇)','科研质量(论文质量FWC)','顶尖成果(高被引论文篇)', '顶尖人才(高被引学者人)', '科技服务(企业科研经费千元)',
'成果转化(技术转让收入千元)', '学生国际化(留学生比例)']
test = pd.DataFrame(columns=name, data=ulist)
test.to_csv(r'C:\Users\Administrator\Desktop\最好大学网2019大学排名.csv', index=0)
def main():
uinfo = []
url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like G'
'ecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3704.400 QQBrowser/10.4.3587.400'}
html = GetHtmlText(url,headers)
GetUniverList(uinfo,html)
WriteToFile(uinfo)
main()
三:代码结果
此次一共有549所大学
四:代码思路
本次一共使用了三个函数GetHtmlText()
第一个函数GetHtmlText()函数获取网页的text信息
第二个函数GetUniverList()将需要的内容加入到一个二维列表中
第三个函数WriteToFile()将列表中的 内容写入csv文件
利用pandas库比较简单
// A code block
test.to_csv(r'C:\Users\Administrator\Desktop\最好大学网2019大学排名.csv', index=0)
主函数main() 反应了代码的主要思路
其中 requests.get(url,headers)加入headers为了模拟浏览器上网
五:总结
第一次用csdn写博客,捣鼓了好久才写好,结果点错了没了,重新写了一份。搞得心态有点炸,没有刚开始的热情写了,所以布局啥的不大好勿怪
如果有更好的建议可以联系我,谢谢
下面是本次代码的结果csv文件 百度网盘分享
链接:https://pan.baidu.com/s/1eI9fi0U9d4i-CWOJImhUMA
提取码:y8df