用于解析 URL 并在文本文件中提取用户名和密码的 Python 脚本

问题描述 投票:0回答:4

我想知道你是否可以帮我解决这个简单的请求。我确实搜索了一个现有的解决方案,但我无法弄清楚,因为我不是专家。 我需要提取用户名和密码。我将有一个带有 URL 的 txt 文件。 我想要一个 python 脚本来读取文件,解析每个 URL 并在新的文本文件中提取

username:password
。网址可以是
.org
.net
.com

http://URL:8080/get.php?username=C59VGdbeJn&password=rNWotM0B6Z&type=list
http://URL:80/get.php?username=D7mPSv9mK6&password=wboR54rDft&type=list
http://URL:80/get.php?username=K8TpaFNvSD&password=3DYIRewM07&type=list
http://URL:8443/get.php?username=KR2gCmAHkq&password=sbhfT2D0B2&type=list
http://URL:80/get.php?username=LA5f3EpWVy&password=oegihMj2mV&type=list
http://URL:80/get.php?username=NHzr2qHgzyDP&password=I9nRDgT5ZK&type=list

文本文件输出将包含:

C59VGdbeJn:rNWotM0B6Z
D7mPSv9mK6:wboR54rDft
K8TpaFNvSD:DYIRewM07
KR2gCmAHkq:sbhfT2D0B2
LA5f3EpWVy:oegihMj2mV
NHzr2qHgzyDP:I9nRDgT5ZK

谢谢大家。

祝你有美好的一天!

我确实搜索了一个现有的解决方案,但我无法弄清楚,因为我不是专家。

python regex url
4个回答
0
投票

假设您在

input_file.txt
文件中有 URL:

http://URL:8080/get.php?username=C59VGdbeJn&password=rNWotM0B6Z&type=list
http://URL:80/get.php?username=D7mPSv9mK6&password=wboR54rDft&type=list
http://URL:80/get.php?username=K8TpaFNvSD&password=3DYIRewM07&type=list
http://URL:8443/get.php?username=KR2gCmAHkq&password=sbhfT2D0B2&type=list
http://URL:80/get.php?username=LA5f3EpWVy&password=oegihMj2mV&type=list
http://URL:80/get.php?username=NHzr2qHgzyDP&password=I9nRDgT5ZK&type=list

你可以试试这个:

import re
output_list = []
with open('input_file.txt') as f:
    for url in f.readlines():
        data = re.search(r'username=(.+)&password=(.+)&', url)
        output_list.append(f"{data.group(1)}:{data.group(2)}\n")

with open('output_file.txt', 'w') as f:
    f.writelines(output_list)

您将获得

output_file.txt
文件:

C59VGdbeJn:rNWotM0B6Z
D7mPSv9mK6:wboR54rDft
K8TpaFNvSD:3DYIRewM07
KR2gCmAHkq:sbhfT2D0B2
LA5f3EpWVy:oegihMj2mV
NHzr2qHgzyDP:I9nRDgT5ZK

希望这能解决您的问题。


0
投票

如果对您有帮助,请标记为解决方案:

import re

# Input and output file paths
input_file = "urls.txt"
output_file = "usernames_passwords.txt"

# Regular expression to match username and password
regex = r"username=([^&]*)&password=([^&]*)"

# Open input and output files
with open(input_file, "r") as f_in, open(output_file, "w") as f_out:
    # Loop over each line in the input file
    for line in f_in:
        # Extract the username and password using regex
        match = re.search(regex, line)
        if match:
            username = match.group(1)
            password = match.group(2)
            # Write the username:password to the output file
            f_out.write(f"{username}:{password}\n")

0
投票

您可以使用Python内置的

username
模块从URL字符串中提取
password
urlparse

这是一个示例代码片段,它读取

content.txt
文件并从每一行中提取
username
password

from urllib.parse import urlparse, parse_qs

output_file = 'output_file.txt'

with open('content.txt') as f, open(output_file, 'w') as outfile:
    for line in f:
        url = urlparse(line.strip())
        params = parse_qs(url.query)
        username = params['username'][0]
        password = params['password'][0]
        outfile.write(f"{username}:{password}\n")

0
投票

鉴于您的输入,假设它存储为位于“/path/to/inputfile”的文件

你想要一个位于“/path/to/outputfile”的文件来包含你想要的输出。

你可以使用这个:

from pathlib import Path

Path('/path/to/outputfile').write_text(
    '\n'.join(f'{a}:{b}'
        for a, b in re.findall(
            r'username=(\w+)&password=(\w+)&',
            Path('/path/to/inputfile').read_text()
        )
    )
)

使用

re.findall
会一次找到所有匹配项,从而避免不必要地重复调用
re.search

© www.soinside.com 2019 - 2024. All rights reserved.