Python: генерация и получение URL с не указанной переменной - PullRequest
0 голосов
/ 26 сентября 2019

Я создал список URL-адресов на основе шаблона, используя формат строки.Каждый URL выглядит примерно так:

https://www.myurl.com/somestr-0/#X

Где «X» переходит от «A» к «Z» (код ниже).

Теперь я хочупереберите этот список и получите каждый URL с запросами, за исключением того, что "0" в каждом URL-адресе должно быть любым числом, которое может быть одной или двумя цифрами.

Я использовал модуль re, чтобы заменить «0» в моем шаблоне, но я не знаю, как использовать вывод с запросами.

import string
alphabet = [x for x in string.ascii_uppercase]

urls = [f'https://www.myurl.com/somestr-x/#{letter}'for letter in alphabet]

for url in urls :
    url = re.sub('x',r'\\d{1,2}',url)

Я хочу иметь возможность использоватькаждый URL с «любым номером» вместо «0» без указания точного числа.

ETA: «любое число» может состоять только из 1 или 2 цифр, и я хочу избежать спамавеб-сайт с слишком большим количеством запросов, «пробуя» каждую возможную комбинацию.

Ответы [ 3 ]

2 голосов
/ 26 сентября 2019

Вы можете использовать randrange из random.

for url in urls :
    url = re.sub('x', random.randrange(1,9) ,url)
    response = requests.get(url)
    ...
0 голосов
/ 26 сентября 2019

Строка

    url = re.sub('x',r'\\d{1,3}',url)

Проблематично - вам нужно заменить ее реальной строкой, а не регулярным выражением.

Попробуйте

import random

...the rest of your code


    url = re.sub('x',str(random.randint(100)),url)
0 голосов
/ 26 сентября 2019

Вы можете использовать requests.Предположим, вам нужен только get, вы можете получить URL с чем-то вроде:

import requests

response = requests.get(url)

Вам нужно только просмотреть все URL-адреса, которые у вас есть, и обработать ответы.Больше информации на https://pypi.org/project/requests/

...