Мой сценарий очищает несколько страниц веб-страницы, которые очищаются, отправляя номер страницы в параметре 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.