MechanicalSoup ਦੀ ਫਾਰਮ ਸਬਮਿਸ਼ਨ ਨੂੰ ਉਸੇ ਪ੍ਰੌਕਸੀ ਰੂਟ ’ਤੇ ਰੱਖੋ
ਕਨਫਿਗਰ ਕੀਤੀ Requests ਸੈਸ਼ਨ ਨੂੰ StatefulBrowser ਨਾਲ ਜੋੜੋ ਤਾਂ ਜੋ ਪੇਜ ਖੋਲ੍ਹਣਾ ਅਤੇ ਫਾਰਮ ਸਬਮਿਟ ਕਰਨਾ ਇੱਕੋ ਰੂਟ ਅਤੇ ਕੂਕੀਜ਼ ਸਾਂਝੇ ਕਰਨ।
import mechanicalsoup
import requests
session = requests.Session()
session.trust_env = False
session.proxies.update({
"http": "http://proxy.example.net:8080",
"https": "http://proxy.example.net:8080",
})
browser = mechanicalsoup.StatefulBrowser(session=session)ਫਾਰਮ ਪੇਜ ਖੋਲ੍ਹਣ ਤੋਂ ਪਹਿਲਾਂ ਐਂਡਪੌਇੰਟ ਚੁਣੋ। ਜਿਸ ਜਨਤਕ ਫਾਰਮ ਵਿੱਚ ਜਨਤਕ ਪ੍ਰੌਕਸੀ ਦੀ ਇਜਾਜ਼ਤ ਹੈ, ਉਸ ਲਈ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਵਿੱਚੋਂ ਇੱਕ ਉਮੀਦਵਾਰ ਲਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਸੈਸ਼ਨ ਬਣਾਓ ਅਤੇ ਦਿਖਾਏ ਅਨੁਸਾਰ ਇਸਨੂੰ StatefulBrowser ਨੂੰ ਦਿਓ। open, ਫਾਰਮ ਚੋਣ ਅਤੇ submit_selected ਲਈ ਉਹੀ ਬ੍ਰਾਊਜ਼ਰ ਵਰਤੋ; ਵਰਕਫਲੋ ਖਤਮ ਹੋਣ ’ਤੇ browser.close() ਨਾਲ ਇਸਨੂੰ ਬੰਦ ਕਰੋ।
ਇਸ ਨਾਲ ਪ੍ਰੌਕਸੀ ਨੀਤੀ ਅਤੇ ਕੂਕੀ ਸਥਿਤੀ ਪੂਰੇ ਆਦਾਨ-ਪ੍ਰਦਾਨ ਲਈ ਵਰਤੀ ਜਾਣ ਵਾਲੀ ਸੈਸ਼ਨ ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ। ਇੱਕ ਸ਼ੁਰੂਆਤੀ ਫੈਚ ਨੂੰ ਦਿੱਤਾ proxies ਆਰਗੂਮੈਂਟ ਬਾਅਦ ਦੀ ਸਬਮਿਸ਼ਨ ਨੂੰ ਆਪਣੇ ਆਪ ਕਨਫਿਗਰ ਨਹੀਂ ਕਰਦਾ।
trust_env = False ਇਸ ਉਦਾਹਰਨ ਦੇ ਰੂਟ ਨੂੰ Requests ਦੀਆਂ ਵਾਤਾਵਰਨ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ ਤੋਂ ਸੁਤੰਤਰ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਵਾਤਾਵਰਨ-ਆਧਾਰਿਤ CA ਬੰਡਲ ਚੋਣ ਅਤੇ .netrc ਪ੍ਰਮਾਣਿਕਤਾ ਵੀ ਬੰਦ ਕਰਦਾ ਹੈ। ਜੇ ਵਰਕਫਲੋ ਨੂੰ ਇਹਨਾਂ ਦੀ ਲੋੜ ਹੋਵੇ ਤਾਂ ਸਪਸ਼ਟ ਤੌਰ ’ਤੇ ਦਿਓ, ਜਾਂ ਹੋਰ ਨੀਤੀ ਚੁਣਦੇ ਸਮੇਂ ਵਾਤਾਵਰਨ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ।