Как удалить javascript из строки с помощью python, а затем проанализировать оставшуюся строку в таблице?

У меня есть эта строка, которую я взял с университетского сайта. Я хочу разобрать его в таблицу, где каждая строка будет состоять из строк до и после двоеточия:.

Это строка.

'課程中文名稱 Название курса на китайском языке:論文 課程英文名稱 Название курса на английском языке:Thesis (Projects) 應修系級 Major:法律學系博士班2 , 授課教師*** 丈博士班2 , 授課教師***丈丈 鮡師 / Факультативный: 必 全 半 學 年 Весь или половина учебного года: 半學 年 學 分 Credits: 0 學分 時 數 Hour (s): 0 小時 (function(window, $) { var sheetID = 1qkUIt6x8ry7F-etZJLMNKwDVr // 試算表代號 gid = 0, // 工作表代號 sql = select%20B,%20C,%20D,%20E,%20F%20where%20G%20=%20'M6106', // SQL-код обратного вызова = callback; // 回呼函數名稱 $.getScript(https://spreadsheets.google.com/tq?tqx=responseHandler: + callback + &tq= + sql + &key= + sheetID + &gid= + gid); window[callback ] = function(json) { var rowArray = json.table.rows, colArray = json.table.cols, rowLength = rowArray.length, colLength = colArray.length, html = , i, j, dataGroup, dataLength, colName = new Array(); for (i = 0; i ‹ colLength; i++) { colName[i] = colArray[i].label.replace(/彈性授課方式\W/g,''); } for (i = 0 ; i ‹ rowLength; i++) { dataGroup = rowArray[i].c; dataLength = dataGroup.length; for (j = 0; j ‹ dat длина; j++) { if (!dataGroup[j]) { продолжить; } if(dataGroup[j].v == Y) html += colName[j] + ,; else if(j == (dataLength - 2) && dataGroup[j].v !== null) html += colName[j] + - + dataGroup[j].v + ,; } //if (dataGroup[dataLength - 2].v !== null) { //html += colName[dataLength - 2] + - + dataGroup[dataLength - 2].v + ,; //} html = html.substring(0,html.length - 1); HTML +=
; } $(#test).html(html); если (html != ) $(#highlight).show(); }; })(окно, jQuery); 「請 遵守 智慧 授課 複製 影印「 不 得 授課 老師 尚 未 建置 課程 綱 綱 綱 有 有 請 直接 洽 任課 有 需要 需要 請 直接 直接 任課 任課 教師!

Я попытался удалить javascript из этого страница переполнения стека

Специальный алгоритм, который я пробовал, просто итеративно соединял разделенную строку на каждые 2 элемента. Это код.

spl = "the string"
spl = [spl[i:i + 2] for i in range(0, len(spl), 2)]

Я знаю, что могу получить доступ к большому количеству данных, если выполню javascript из браузера. Мой вопрос: как я могу сначала проанализировать javascript, а затем проанализировать оставшуюся строку в таблице?


person Tony Fools Orbis    schedule 22.07.2021    source источник
comment
Не могли бы вы отредактировать свой вопрос и поместить туда необработанный HTML, а не просто строку без тегов?   -  person Andrej Kesely    schedule 22.07.2021
comment
у меня есть URL? все хорошо? у меня нет хтмл.   -  person Tony Fools Orbis    schedule 22.07.2021
comment
И какой URL?   -  person Andrej Kesely    schedule 22.07.2021
comment
sea.cc.ntpu. edu.tw/pls/dev_stud/ вот этот. Извините за поздний ответ   -  person Tony Fools Orbis    schedule 23.07.2021


Ответы (1)


Пытаться:

import requests
from bs4 import BeautifulSoup

url = "https://sea.cc.ntpu.edu.tw/pls/dev_stud/course_query.queryGuide?g_serial=U1382&g_year=109&g_term=2&show_info=part"
soup = BeautifulSoup(requests.get(url).content, "html.parser")

for tr in soup.body.table.select("tr"):
    print(tr.get_text(strip=True))
    print("-" * 80)

Отпечатки:

...
--------------------------------------------------------------------------------
課程中文名稱 Title of Course in Chinese:大學英文1B課程英文名稱 Title of Course in English:College English應修系級 Major:語文通識1  ,中國文學系1  ,歷史學系1  ,休閒運動管理學系1  ,法律學系財經法組1  ,法律學系法學組1  ,法律學系司法組1  ,授課教師 Instructor:殷雅玲選修類別 Required/Elective:必向度類別 Classification:全半學年 Whole or Half of the Academic Year:全學年學  分 Credit(s):2學分時  數 Hour(s):2小時
--------------------------------------------------------------------------------
彈性授課方式:
--------------------------------------------------------------------------------
教師網址 Instructor's Website :
--------------------------------------------------------------------------------
教師專長 Instructor's Specialty :英語教學
--------------------------------------------------------------------------------
課綱附檔 Attachments :
--------------------------------------------------------------------------------
先修科目 Prerequisites:High school English
--------------------------------------------------------------------------------

...and so on.
person Andrej Kesely    schedule 23.07.2021