url = 'https://www.xicidaili.com/nn' header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" }
response = requests.get(url=url,headers=header).text
html = etree.HTML(response)
ip_list = html.xpath('//div/table/tr/td[2]/text()')
port_list = html.xpath('//div/table/tr/td[3]/text()')
area_list = html.xpath('//div/table/tr/td[4]/a/text()')
i_list = (x for x in ip_list)
p_list = (y for y in port_list)
a_list = (z for z in area_list) def get_proxy():
# for i in range(3):
# print('-' * 10)
# print('ip列表:',next(i_list))
# print('端口列表',next(p_list))
# print('地区列表',next(a_list))
# print('-' * 10)
# print(i_list,p_list,a_list) new_list = [next(i_list),next(p_list),next(a_list)] # 第一次返回 # print(new_list) for count in i_list: yield new_list #当第1次程序执行到此处,直接返回'第一次返回'的列表内容 new_list = [next(i_list), next(p_list), next(a_list)] #当第2次调用,执行此处语句(从yield下面语句开始执行),重新给列表赋新值,然后走循环,再次返回列表new_list,如此循环,直至遍历i_list列表
a = get_proxy() print(next(a)) print(next(a)) print(next(a)) print(next(a))