Я ненавижу дождь на вашем параде, но создание справочного списка юридических вузов, а затем проведение тестов с заданным типом членства в исходном коде, вероятно, не сработает. Дефектный подход:
schools = []
html = page.read()
for school in list:
if school in html:
schools.append(school)
Причина в следующем: вы предполагаете, что названия юридических школ представлены на веб-сайтах адвокатов единообразно, но это предположение не является надежным. Например, я ходил в юридическую школу под названием Калифорнийский университет, юридический колледж Гастингса. Иногда он появляется на сайтах адвокатов как юридический колледж Гастингса, а другие - как UC Hastings. Часто данные о том, куда адвокат ходил в школу, собираются непосредственно от адвоката, поэтому они будут отображаться дословно, как он или она их предоставили. Вы, вероятно, не можете предположить, что данные были позже нормализованы.
В результате любые названия школ, которые отклоняются от вашего списка поиска, не будут найдены. Чтобы еще больше усложнить ситуацию, самая короткая версия названия моей школы - UC Hastings - может даже привести к путанице в difflib «получить близкие совпадения», если вы не установите соотношение совпадений очень низкое, что неизбежно приводит к тому, что подпрограмма находит ряд других ложных положительные тоже.
Вот мой совет. Паук список всех имен юридической школы и положить его в таблицу базы данных. Создайте вторую таблицу с известными отклонениями из списка. Каждый раз, когда вы делите паук на сайте, попробуйте пройти тест на членство в базовом наборе в поисковом списке (или динамически сгенерированном регулярном выражении). В вероятном случае, если такой поиск не удался, заставьте сценарий выдать ошибку и распечатать непревзойденную школу на консоль. Добавьте эту школу в таблицу известных вариантов и введите ее в правильное название школы в основной справочной таблице. Повторяйте этот процесс, пока не почувствуете уверенность в том, что у вас есть большинство вариантов. Оттуда добавьте хак, чтобы проверить необоснованные названия школ по списку официальных элементов поиска и всех известных вариантов, используя
difflib.get_close_matches
Используйте этот вид метода для возврата ближайшего действительного соответствия в любое время, когда школа не найдена. Это может быть лучшим, что ваши клиенты могут попросить. Я использую django для такого рода вещей, потому что встроенный администратор базы данных позволяет легко добавлять известные варианты.