這是一個關于統計學科評估的代碼。。。然后總是給我報錯not enough values to unpack (expected 2, got 1) 。我是個大一非計科專業新手。。。求大神幫忙解決QAQ
代碼如下
# 獲取資料的腳本
import re
import requests
import pandas as pd
from bs4 import BeautifulSoup
import lxml
def GetSchoolRank():
print('正在獲取資料中...')
session = requests.Session()
base_url = 'http://www.cdgdc.edu.cn/webrms/pages/Ranking/xkpmGXZJ2016.jsp'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'
}
res = session.get(url=base_url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
# 獲取專業名+專業代碼
subjects = [e.text for e in soup.find_all('a', text=re.compile(r'\d\d\d\d'))]
# 展開一個一個大類來獲取專業名+專業代碼
for e in soup.find_all('a', {'href': re.compile('\?xkdm=\d\d')})[1:]:
url = base_url + e['href'][16:]
res = session.get(url=url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
subjects.extend([ee.text for ee in soup.find_all('a', text=re.compile(r'\d\d\d\d'))])
df = pd.DataFrame(columns=['學校代碼', '學校名', '專業名', '評估'])
for e in subjects:
major_name = e[4:]
major_code = e[:4]
url = base_url + '?yjxkdm=%s' % major_code
res = session.get(url=url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
table = soup.find('table', dict(bgcolor="#c2d8e5", border="0", cellpadding="0", cellspacing="1",
width="610px")).find_all('td')
school_code_regular = re.compile(r' \d{5}')
assessment = ''
for row in table:
text = row.text
if school_code_regular.match(text):
school_code, school_name = text.split(' ')
school_code = school_code.replace(' ', '')
school_name = school_name.replace(' ', '')
df = df.append({'學校代碼': school_code.replace('\n', '').strip(), '學校名': school_name.replace('\n', '').strip(), '專業名': major_name.replace('\n', '').strip(), '評估': assessment.replace('\n', '').strip()},
ignore_index=True)
else:
assessment = text
df.to_excel('schoolRank.xlsx', index=None)
df.to_csv('schoolRank.csv', index=None)
print('獲取資料完成')
if __name__ == "__main__":
GetSchoolRank()
然后會報錯
ValueError Traceback (most recent call last)
<ipython-input-66-5b9d192a65d9> in <module>
64
65 if __name__ == "__main__":
---> 66 GetSchoolRank()
<ipython-input-66-5b9d192a65d9> in GetSchoolRank()
47 text = row.text
48 if school_code_regular.match(text):
---> 49 school_code, school_name = text.split(' ')
50 school_code = school_code.replace(' ', '')
51 school_name = school_name.replace(' ', '')
ValueError: not enough values to unpack (expected 2, got 1)
求助!!!救救孩子TATTTT
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/27754.html
標籤:語言基礎/算法/系統設計
上一篇:請問用MATLAB2015B匯出的DLL能不能直接被DELPHI7呼叫?一個要被delphi和MATLAB混編逼瘋了的人
