从文本文件中提取个人网站详细信息

时间:2019-07-26 09:01:44

标签: python-3.x

我正在尝试从文本文件中提取个人网站的详细信息。考虑一下,我们在文本文件中具有以下链接。如何从中仅提取github,stackoverflow和wordpress网址?

https://github.com/XYZ

github.com/abcd

linkedin.com/in/ahgf

abcd.wordpress.com/

www.google.com

https://play.google.com/store/search?

https://stackoverflow/sampath

stackoverflow.com/abcdv

我使用以下正则表达式提取:

urls = re.findall('(?:(?:(?:ftp|http)[s]*:\/\/|www\.)[^\.]+\.[^ \n]+)', text)

return urls

但是输出是:

https://github.com/XYZ

https://play.google.com/store/search?

https://stackoverflow/sampath

必填输出:

https://github.com/XYZ

github.com/abcd

linkedin.com/in/ahgf

abcd.wordpress.com/

https://stackoverflow/sampath

stackoverflow.com/abcdv

我使用以下代码实现了pdf文件的实现:

import pdfx

pdf = pdfx.PDFx('E:/cvparser/backupresumes/xyz.pdf')

metadata = pdf.get_metadata()

reference_list = pdf.get_references()

reference_dict = pdf.get_references_as_dict()

r = [x for x in reference_dict['url'] if 'stackoverflow' in x or 'linkedin' in x or 'github' in x or 'wordpress' in x]

print (r) 

有人可以告诉我如何为文本文件实现这一目标吗?使用正则表达式模式还是使用任何python模块?

1 个答案:

答案 0 :(得分:0)

这不是最有效的方法,但是如果您需要简单的东西,下面的代码应该可以做到。

output = []
links = ['github', 'stackoverflow', 'wordpress']
with open('/path/to/input_file.txt', 'r') as f:
    lines = f.readlines()
    for line in lines:
        for link in links:
            if link in line:
                output.append(line)

print(output)

这个想法是遍历文件的各行,然后通过遍历一组URL并对照该行的内容检查每个URL,以检查该行中是否存在所需的URL。