Улучшение способа цикла для отправки правильных данных - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь сканировать несколько PDF-файлов для обработки данных, однако, когда я пытался отправить num на данный запрос, как этот https://www.google.com/search?q=filetype:PDF+%PDF-+aa&num=100&start=0 next &start=1 и т. Д., Но у меня всегда одно и то же значение 5

import string
ext = "pdf"
magic_header = "%PDF-"
ltrs = string.ascii_lowercase
build_query = [''.join([a,b]) for a in ltrs for b in ltrs]
max_results = 10
counter = 0
while counter < max_results:
    while True:
        if counter == 0:
            for query in build_query:
                print('https://www.google.com/search?q=filetype:{}+{}+{}&num=100&start={}'.format(ext, magic_header, query,counter))
            break
        print(counter)
        counter += 1 
    break

Ответы [ 2 ]

0 голосов
/ 03 ноября 2019

Почему цикл такой сложный?

Вот простое решение. Я запросил ваше big_query только для первых 10 элементов в списке.

import string
ext = "pdf"
magic_header = "%PDF-"
ltrs = string.ascii_lowercase
build_query = [''.join([a,b]) for a in ltrs for b in ltrs][1:10]
max_results = 5
counter = 0

while counter <= max_results:
    for query in build_query:
            print('https://www.google.com/search?q=filetype:{}+{}+{}&num=100&start={}'.format(ext, magic_header,query,counter))
    counter +=1
0 голосов
/ 03 ноября 2019

Проблема заключается в использовании вами операторов while True, if counter == 0 и break. Это должно работать, чтобы гарантировать, что counter всегда увеличивается во время цикла.

import string

ext = "pdf"
magic_header = "%PDF-"
ltrs = string.ascii_lowercase
build_query = ["".join([a, b]) for a in ltrs for b in ltrs]
max_results = 10
counter = 0
while counter < max_results:
    for query in build_query:
        print(
            "https://www.google.com/search?q=filetype:{}+{}+{}&num=100&start={}".format(
                ext, magic_header, query, counter
            )
        )
    counter += 1

Изменить в отношении обсуждения ниже:

import string

ext = "pdf"
magic_header = "%PDF-"
ltrs = string.ascii_lowercase
build_query = ["".join([a, b]) for a in ltrs for b in ltrs]
max_results = 10
counter = 0
while True:
    for query in build_query:
        print(
            "https://www.google.com/search?q=filetype:{}+{}+{}&num=100&start={}".format(
                ext, magic_header, query, counter
            )
        )

    if counter < max_results:
        break
    else:
        counter += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...