python中國大學排名定向爬蟲2020
1. 爬取**為:作為學習中的第乙個爬蟲,網上也有很多大學排名的**,不過很多都不正確。主要就是在學校名稱的td標籤**現了變化
class
="align-left"
data-v-2a8fd7e4
>
href
="/institution/shanghai-university-of-finance-and-economics"
data-v-2a8fd7e4
>
上海財經大學a
>
style
="display
:none
" data-v-2a8fd7e4
>
p> td
>
可以發現,在
標籤中,學校名稱多了乙個< a href>
和
這個注釋,這兩部分需要進一步處理。
2. 完整**如下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @date : 2020-12-22 18:45:14
# @author : ericray
# @email : [email protected]
# @link :
# @description: 定向爬蟲實列-2020中國大學排名
import requests
from bs4 import beautifulsoup
import bs4
import re
defgethtmltext
(url)
:try
: r = requests.get(url, timeout=30)
r.raise_for_status(
) return r.text
except
:return
"something is wrong about the url conetents!"
# 在td標籤中提取a標籤,並去掉注釋標籤
deffillunivlist
(ulist, html)
: html1 = re.sub('',
"", html)
.replace(
'\n',""
)# 正規表示式去掉注釋、換行
soup = beautifulsoup(html1,
"html.parser"
)for tr in soup.find(
'tbody'
).children:
ifisinstance
(tr, bs4.element.tag)
: tds = tr(
'td'
) td1 = tr(
'a')
# print(tds)
[tds[0]
.string, td1[0]
.string, tds[2]
.string, tds[4]
.string]
)# print(tds[1].string)
defprintunivlist
(ulist, num)
: tpl =
"\t^10}\t\t"
# ^10} 1表示位置,表示用第4個引數來填充,^表示居中,10表示佔10個位置
print
(tpl.
format
("排名"
,"學校名稱"
,"所屬省市"
,"總分"
,chr
(12288))
)for i in
range
(num)
: u = ulist[i]
# print(u)
print
(tpl.
format
(u[0
].strip(
), u[1]
.strip(
), u[2]
.strip(
), u[3]
.strip(),
chr(
12288))
)def
main()
: uinfo =
url =
''html = gethtmltext(url)
fillunivlist(uinfo, html)
printunivlist(uinfo,20)
# 20 univs
if __name__ ==
"__main__"
: main(
)
爬蟲中國大學排名
from pip.vendor import requests print 訪問谷歌 獲取response物件 r requests.get x 1 while x 20 print 第 str x 次的返回狀態列印 str r.status code print 第 str x 次的text 列印...
Python爬蟲 中國大學排名爬蟲
案例 import requests from bs4 import beautifulsoup import bs4 def gethtmltext url 爬取最好大學排名 內容 try r requests.get url,timeout 30 r.raise for status retur...
Python之爬蟲 中國大學排名
usr bin env python coding utf 8 import bs4 import requests from bs4 import beautifulsoup 通過傳入 資訊建立乙個獲取網頁文字的函式 def gethtmltext url 判斷獲取網頁文字過程中是否有錯誤 try...