使用python模块查找正确的URL

时间:2019-06-21 05:30:51

标签: python

我们获得了一个URL,比方说https://www.123.com/random4digitnumber。 (例如https://www.123.com/1234)使用python,我们必须找到4位数字才能找到正确的URL。我必须使用python 3.7。

我尝试导入Web浏览器并进行循环,以打开每个页面(从0000到9999),但这非常耗时。

编辑:抱歉,我忘了添加一个关键的细节。我已经添加了它。

我的理想输出是正确的URL或正确的URL本身的4位数字。非常感谢。

2 个答案:

答案 0 :(得分:0)

我没有正确回答您的问题。请尝试以下解决方案,我认为您需要这种解决方案。

import requests

for i in range(0, 10000):
    url = f'https://www.123.com/{"{:04}".format(i)}'
    response = requests.get(url, verify=False)

    if response.status_code == 200:
        print(f'correct url is : {url}')
        break

我添加了verify=False,因为https://www.123.com/网站使用了Self-signed certificate。您将获得404作为输出,这意味着找不到给定的URL。

答案 1 :(得分:0)

您需要做的就是创建所有链接的列表,然后尝试点击这些链接, 并检查响应状态。如果状态小于400,则它们是有效的。

下面是示例代码

import requests

k=[]
for i in range(0,10):
    for j in range(0,10):
        for l in range(0,10):
            for m in range(0,10):
                st ='https://www.123.com/' +str(i)+str(j)+str(l)+str(m)
                k.append(st)
res = []
for v,i in enumerate(k):
    try:
        print(v)
        if requests.get(i).status_code<400:
            res.append(i)
            print('{} is valid link'.format(i))
    except:
        print('{} is not valid link'.format(i))
        pass