使用免费的代理ip进行网络请求,降低了反爬机制的触发率。加入自动发送邮件的功能,在代码运行出错的时候可以及时收到提醒消息。
主程序代码:
import requests
import os
import time
from lxml import etree
from bs4 import BeautifulSoup
import random
# 自定义模块,发送邮件
from send_email import email_func
#从ip代理网站获取ip列表
def get_ip_list(headers):
i = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
s = random.choice(i)
# ip代理网站
proxy_url = 'https://www.89ip.cn/index_' + str(s) + '.html'
try:
web_data = requests.get(url=proxy_url, headers=headers)
soup = BeautifulSoup(web_data.text,'lxml')
ips = soup.find_all('tr')
ip_list = []
for i in range(1,len(ips)):
ip_info = ips[i]
tds = ip_info.find_all('td')
# 拼接成【ip:端口】的格式
ip_list.append(tds[0].text.replace('\n', '').replace('\t', '') + ':' + tds[1].text.replace('\n', '').replace('\t', ''))
print(ip_list)
return ip_list
except: