我正在尝试从文本文件中提取个人网站的详细信息。考虑一下,我们在文本文件中具有以下链接。如何从中仅提取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模块?
答案 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。