В вашем коде вместо -
i.text
вы можете использовать i.getText(' ,')
(или с другим разделителем по вашему выбору, кроме,). Это даст вам IP и порты, разделенные запятыми.
Более того, для удобства вы также можете загрузить список прокси в массив данных.
Внести следующие изменения / дополнения в ваш код -
soup = bs(response.content,'html.parser')
data_list = [tr for tr in soup.select('tr') if tr.td]
data_list2 = [tr.getText(' ,') for tr in soup.select('tr') if tr.td]
#for i in data_list:
#print(i.text)
df = pd.DataFrame(data_list2,columns=['proxy_list'])
df_proxyList= df['proxy_list'].str.split(',', expand=True)[0:300]
df_proxyList будет выглядеть (с несколькими столбцами мусора) -