Kauce wa sauye-sauyen urllib opener na duniya a cikin masu duba proxy
Ka riƙe binciken proxy na urllib a cikin opener ɗinsa maimakon maye gurbin hanyoyin tafiyar da tsari da lokacin da aka saba.
from urllib.request import ProxyHandler, build_opener
def make_proxy_opener(proxy_uri):
return build_opener(ProxyHandler({
"http": proxy_uri,
"https": proxy_uri,
}))
opener = make_proxy_opener("http://proxy.example.net:8080")
# Use opener.open(destination, timeout=10) for this route.Ka kira hanyar open ta wannan opener ɗin lokacin da hanya ta kasance ta binciken. Ƙarshen HTTP na misalin na iya fitowa daga sabis ɗinka ko daga jerin proxy na HTTP don bincike na jama'a. Sassan yana nuna mallaka; ba ya bayyana cikakkiyar manufar tabbatarwa ko lafiya. Ka riƙe duk wani mai sarrafa na musamman na asusu a haɗe da abokin ciniki da aka nufa.
urllib.request.install_opener() yana canza tsoho na dukan tsari wanda kira na urlopen() na matakin module daga baya ke amfani da shi. Don haka mai dubawa da ke zagayawa cikin proxies na iya barin buƙatun da ba su da alaƙa su yi amfani da ƙarshensa na ƙarshe. Shigar da ɗan lokaci da mayarwa yayin tsaftacewa har yanzu yana ba da damar buƙatun lokaci ɗaya su gudana yayin sauye-sauyen da aka raba.
socket.setdefaulttimeout() haka ma yana canza tsoho na sockets da aka ƙirƙira daga baya. Yi amfani da lokacin matakin aiki lokacin da binciken kaɗai ya kamata ya same shi.
Ka rufe amsoshin bincike kuma ka riƙe sakamakonsu takamaimai: amsar kuskuren HTTP ba lallai ba ne mataccen mai sauraron proxy. Idan an yi amfani da binciken urllib na lokaci ɗaya a cikin sabis ɗin async, ka matsa aikin da ke toshe zuwa ma'aikacin da ya dace; wannan shawarar aiwatarwa ba ta sa canjin opener na duniya ya zama keɓaɓɓe ba.
Bincike ya kamata ya dawo da abin lura ba tare da barin wata manufar cibiyar sadarwa a baya. Abin cinikinsa na kansa da iyakataccen aiki suna bayyana wannan iyaka.