Как найти URL из содержимого чтения из файла с помощью Python - PullRequest
1 голос
/ 23 мая 2019

У меня есть данные, представленные ниже в файле с несколькими абзацами, я хочу найти URL, представленные в каждом абзаце отдельно.

Лицензии:

Лицензия Prasd v2.1

Лицензия Prasd Free

v.2.1

Данная бесплатная лицензия на прасад («Лицензия») применяется к любой оригинальной авторской работе («Оригинальная работа»), владелец которой («Лицензиар») разместил следующее уведомление сразу же после уведомления об авторских правах дляОригинальная работа:

Лицензия под лицензией prasad Free 2.1.1


Примечание о правах на программное обеспечение balaji (balaji 2.7.7)

Лицензия balaji

Мы призываем пользователей разрабатывать программное обеспечение с помощью Balaji.Тем не менее, мы просим отдать нам должное за развитие баладжи.Под «кредитом» мы подразумеваем, что, если вы используете balaji или включаете какой-либо исходный код в одну из своих программ (коммерческий продукт, исследовательский проект или иным образом), вы признаете этот факт где-то в документации, отчете об исследовании и т. Д ... ЕслиВы любите баладжи и разработали хороший инструмент с выводом, пожалуйста, отметьте, что вы разработали его с использованием баладжи.Кроме того, мы просим, ​​чтобы заголовки оставались неизменными в нашем исходном коде.Пока эти рекомендации соблюдаются, мы ожидаем продолжения усовершенствования этой системы и ожидаем, что другие инструменты будут доступны по мере их завершения.


mogga 1.1

mogga Software License

Версия 1.1

  "This product includes software developed by the mogga Software Foundation
  (http://www.mogga.org/)."

Это программное обеспечение состоит из добровольных взносов, сделанных многими лицами от имени mogga Software Foundation.Для получения дополнительной информации о mogga Software Foundation см. http://www.mogga.org/.

jfhwifwefwe


Praveen 2.0

Версия 2.0, январь 2004 г.

http://www.praveen.org/licenses/

УСЛОВИЯ ИСПОЛЬЗОВАНИЯ, ВОСПРОИЗВЕДЕНИЯ И РАСПРОСТРАНЕНИЯ

  1. Определения.

    с Лицензией.Вы можете получить копию лицензии по адресу http://www.praveen.org/licenses/LICENSE-2.0 Если это не требуется действующим законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по лицензии, составляет


1 Ответ

1 голос
/ 23 мая 2019

Это то, что вы хотели? Было бы неплохо получить ожидаемый результат в вашем вопросе.

URL_REGEX Ссылка

import re

URL_REGEX = r'((?:(?:http|ftp|https):\/\/)?[-\w@:%.\+~#=]{2,256}\.[a-z]{2,6}\b[-\w@:%\+.~#?&\/=]*)'
result = {}

with open("text.txt") as f:
  par_name = ""
  lines = f.readlines()
  urls = []
  for i, line in enumerate(lines):
    line = line.strip()
    # New paragraph
    if {"="} & set(line):
      if par_name or urls:
        result[par_name] = urls
      urls = []
      par_name = lines[i-1].strip()
      continue
    urls.extend(re.findall(URL_REGEX, line))
print(result)

Результат:

{
  'Prasd Free License': [],
  'balaji License': [],
  'mogga Software License': ['http://www.mogga.org/', 'http://www.mogga.org/']
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...