Будущий объект получает правильные параметры, но в итоге он выполняет задачи с тем же параметром, что и последний будущий объект - PullRequest
0 голосов
/ 16 апреля 2019

Мой сценарий очищает несколько страниц веб-страницы, которые очищаются, отправляя номер страницы в параметре POST

Мои функции:

def hit_url_and_scrape(headers, payload):
    print ("hitting with {} as page number !!!".format(payload['page']))
    doc = requests.post('https://www.sci.gov.in/php/getPartyDetails.php', headers=headers, data=payload)
    print ("I just got response for the {} th page number".format(payload['page']))

    return scrap(bs4.BeautifulSoup(doc.text, 'lxml'))


def main():
    eng_page = 4
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
        'Host': 'www.sci.gov.in',
        'Origin': 'https://www.sci.gov.in',
        'Referer': 'https://www.sci.gov.in/case-status',
        'X-Requested-With': 'XMLHttpRequest'
    }

    data = {
        'PartyType': '',
        'PartyName': party_name,
        'PartyYear': year,
        'PartyStatus': 'P',
        'page': page_count,
    }
    with ThreadPoolExecutor(max_workers=8) as executor:
            futures = []
            results = []    
            for page in range(2, int(end_page)+1):
                data['page'] = page
                futures.append(executor.submit(hit_url_and_scrape, headers, data))
            for result in as_completed(futures):
                print (len(result._result))
                results.extend(result._result)
            print ("#####################################################################33")

Мои журналы печати:

hitting with 2 as page number !!!      
hitting with 3 as page number !!!     
hitting with 4 as page number !!!        
I just got response for the 4 th page number   
48    
I just got response for the 4 th page number    
48    
I just got response for the 4 th page number   
48    

Как вы можете видеть, в моих журналах функция получает правильные параметры, но перед выполнением запросов параметры каждого запроса становятся такими же, как параметры объекта прошлого будущего.Даже длина результата совпадает с результатом последней страницы.Я пробовал свой скрипт в Python2.7 и 3.5.

...