프로 세 스 탱크 에서 프 록 시 와 검 측 프 록 시 가 져 오기
import requests
from lxml import etree
import multiprocessing
#
def get_all_proxy(queue):
url = 'http://www.xicidaili.com/nn/1'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}
response = requests.get(url,headers=headers)
html = response.text
html = etree.HTML(html)
ip_list = html.xpath('//table[@id="ip_list"]/tr/td[2]/text()')
d_list = html.xpath('//table[@id="ip_list"]/tr/td[3]/text()')
# print(ip_list,d_list)
for i in range(0,len(ip_list)):
proxy = 'http://' + ip_list[i] + ':' + d_list[i]
# print(proxy)
# print(porxy_list)
queue.put(proxy)
# with open('xicidaili.html','wb') as f:
# f.write(response.content)
#
def check_all_proxy(proxy):
# print(proxy)
try:
url = 'http://fanyi.baidu.com/sug'
porxy_dict = {
'http':proxy
}
try:
response = requests.get(url,proxies=porxy_dict,timeout=3)
if response.status_code == 200:
print(proxy)
# with open('ip.txt', 'a') as f:
# f.write(proxy+'
')
return proxy
else:
print(' '*20)
return proxy
except:
return None
except Exception as e:
print(e)
#
if __name__ == '__main__':
import time
start_time = time.time()
#
q = multiprocessing.Queue()
# pool , queue
#
p = multiprocessing.Process(target=get_all_proxy, args=(q,))
#
p.start()
# proxy_list = get_all_proxy()
#
pool = multiprocessing.Pool(50)
result_list = []
while True:
try:
proxy_str = q.get(timeout=5)
# print(' ', proxy_str)
except:
break
# print('apply_async ')
# proxy_and_queue = [proxy_str, result_q]
proxy_res = pool.apply_async(check_all_proxy, (proxy_str,))
result_list.append(proxy_res)
# valid_proxy_list = check_all_proxy(proxy_list)
valid_proxy_list = []
for proxy_res in result_list:
result = proxy_res.get()
if result is None:
pass
else:
valid_proxy_list.append(result)
# print(result)
print('All proxy we can get:')
print(valid_proxy_list)
pool.close()
pool.join()
p.join()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.