Попытка написать некоторый код, чтобы определить, был ли установлен флажок на HTML-страницах. - PullRequest
0 голосов
/ 04 апреля 2011

Я работаю с большой коллекцией документов, которые подготовлены более чем 5 тысячами разных организаций.Одна из вещей, которые я пытаюсь сделать, это определить, был ли установлен флажок.Подготовитель должен указать некоторую информацию, установив один из пяти различных флажков.

Проблема заключается в том, что составитель самостоятельно решил, как представить флажок в HTML.Некоторые из их представлений интересны.Они в основном полагаются на wingdings как директиву шрифта.Вот несколько типов флажков, которые я обнаружил до сих пор

'serif">S</font>'
'wingdings">x</font>'
'&#252;' 
'&#253;'
'&#254;'


<font style="font-family: Wingdings; font-variant: normal">&#254;</font>

В фрагменте кода, который я вставил выше, будет отображаться флажок, когда документ открывается с помощью варианта IE, он будетсделать что-то еще, когда документ открыт с помощью Firefox, Safari или Chrome.

Вот еще один пример

<div style="DISPLAY: block; MARGIN-LEFT: 0pt; TEXT-INDENT: 0pt; MARGIN-RIGHT: 0pt" align="center"><font style="DISPLAY: inline; FONT-SIZE: 10pt; FONT-FAMILY: times new roman">THE DATA THAT HAS THE CHECKED BOX  <font style="DISPLAY: inline; FONT-FAMILY: wingdings 2, serif">R</font></font></div>

Так что я думаю, в простейшем виде мой вопрос

Есть ли в Python что-то, что «знает», что

<font style="DISPLAY: inline; FONT-FAMILY: wingdings 2, serif">R</font>

это флажок установлен?А затем расширив это далее - есть ли что-то, что «знает» об этом практически во всех отношениях, когда флажок может быть представлен в HTML-коде?

Я хочу отметить, что когда я проверяю текст этого элемента шрифта, яполучить Unicode R

Надеюсь, это понятнее.

1 Ответ

0 голосов
/ 04 августа 2011

То, как я это вижу, выглядит так.

Значение ascii для 'S' равно 83. Если вы посмотрите на 83 на крылышках, вы получите "каплю". Юникод-эквивалент «капли» - ?.

Значение ascii для 'x' равно 120. Если посмотреть на крылышки на 120, вы получите "clear". Юникод ⌧.

252 - это wingding "checkbld", Unicode ✓.

253 - это "boxxmarkbld", юникод ☒

254 является глюком "boxcheckbld", юникод ☑.

'R' отображается под wingdings семейства шрифтов2, ascii 82 и в юникодном эквиваленте ☑

Примечание: это всего лишь предположение о том, какой именно. Не верь мне на слово. Я предположил, что это будет так, поскольку это, кажется, имеет смысл. Мой источник Здесь (wingdings) и Здесь (wingdings2)

Решение для комментария: [√] (левая скобка, усилитель, фунт, 8730, точка с запятой, правая скобка). & # 8730 интерпретируется как U + 221A, а точка с запятой является символом типа «конечная инструкция». Согласно fileformat.info , U + 221A является символом квадратного корня и находится в питоне u '\ u221a'. Это должно решить вашу проблему.

Все ответы, которые я даю, являются предметом спекуляций и догадок, хотя коды символов и их эквиваленты проверяются с помощью ссылок и chr () и ord () python2.7.1.

...