v2.5.2
Giriş yap

Web Scraping Yaparken Nasıl Proxy Kullanabilirim?

ataknkcyyn
526 defa görüntülendi

Web scraping ile uğraşıyorum ve zaman zaman bazı siteler üzerinde ip ban yiyorum. Biliyorum her sitenin kendine has koruma yöntemleri var fakat bazı durumlarda da proxy kullanarak bu ip engellini atlatmaya çalışıyorum. Aşağıdaki python kodunda proxy adreslerini çekiyorum ve bir site üzerinde engellendiğimde proxy değiştirerek bağlantı kurmaya çalışıyorum(evet ücretli servisler var ve ödeme yaparak kullanabilirim). Şu an için bir ödeme yaparak bu hizmeti alıcak kadar yoğunlukta iş yapmıyorum. Doğru proxy'i bulup bağlanması kimi zaman çok uzun sürüyor ve beni yavaşlatıyor. Kod ile ilgili bir sıkıntı yok ama daha hızlı işlem yapabileceğim bir yöntem var mı? Önerileriniz varsa rica edebilir miyim?

def  get_html(link, **kwargs):
	while  True:
		try:
			proxy = proxy_generator()
			response = requests.request(
						"get", link, proxies=proxy, timeout=7, **kwargs)
			source = BeautifulSoup(response.content, "html.parser")
			break
		except  Exception  as  e:
			print(e)
	return  source  

def  proxy_generator():	
	response = requests.get("https://sslproxies.org/")
	soup = BeautifulSoup(response.content, 'html.parser')
	proxies = soup.find_all("tbody") # tablonun icini aliyorum
	proxies = proxies[0].find_all("tr") # tablonun icindeki tum satirlari aliyorum
	proxies_array = []
	for  i  in  proxies: # satirlari tek tek gezip ip ve portu ayikliyorum
		try:
			ip = i.find_all("td")[0].text
			port = i.find_all("td")[1].text
			proxies_array.append({"https":ip+":"+port})
		except  Exception  as  e:
			print(e)
	result = random.choice(proxies_array)
	return  result

Kodu bir türlü renklendiremedim kusura bakmayın

admin
1281 gün önce

Sadece GET isteği yapıyorsan facebook'un proxy'sini kullanabilirsin. Facebook Bot olduğu için engel yemiyor. https://developers.facebook.com/tools/debug/echo/?q=https://prototurk.com