Продолжим начатое.
В прошлой СТАТЬЕ мы спарсили список прокси, и получили очищенный от мусора вывод в виде словаря. Чтобы совсем всё получилось идеально (убрать кавычки и фигурные скобки), нужно словарь перевести в строку.
Для этого напишем цикл, и разместим его сразу под словарём data. Чтобы цикл был рабочим, нужно переменную b сделать глобальной.
Можно также убрать пробел в начале записи с помощью lstrip(), и вывод на печать будет такой print(d.lstrip())
Запускаем программу, и получаем чистый список данных в виде строк
Но конечно лучше же иметь запись результатов в текстовом файле. Поэтому мы поменяем вывод на запись в файл и получим на выходе proxy.txt
Текстовый файл это уже замечательно, но мы сделаем наши данные ещё более читаемыми. Для этого откроем proxy.txt с помощью EXEL. Выделим щелчком мышки столбец А, зайдём во вкладку "Данные" --> "Текст по столбцам"
Жмём далее, выставляем разделитель "запятая"
Ещё раз далее и ОК. Расставим ширину колонок как нам нравится и получим удобный и красивый результат. Но как говорится не все прокси одинаково хороши. Нам нужно отобрать наилучшие. Поэтому отсортируем наш лист по колонке D и получим в самом низу сервера с низкой анонимностью.
Теперь просто-напросто выделим строки с такими серверами и удалим. А затем снова отсортируем по столбцу F, и увидим следующий результат
Теперь можно сохранить XLS, и пользоваться самыми быстрыми прокси (колонка F). В колонке D выбираем при этом варианты с максимальной анонимностью. В данном примере самыми лучшими соответственно будут сервера в строках 1, 3, 6, 7, 8.
Ну вот мы спарсили и отобрали лучшие сервера. Работу с парсингом по этому сайту можно считать законченной. Там есть ещё другие странички с серверами, но мы их не будем парсить, нам же нужны только самые свежие сервера. Списки прокси обновляются каждый день, так что можно запускать программу раз в день, отбирать лучшие варианты в EXCEL и пользоваться.
А я не прощаюсь, и напишу скоро ещё какую-нибудь программку
В прошлой СТАТЬЕ мы спарсили список прокси, и получили очищенный от мусора вывод в виде словаря. Чтобы совсем всё получилось идеально (убрать кавычки и фигурные скобки), нужно словарь перевести в строку.
Для этого напишем цикл, и разместим его сразу под словарём data. Чтобы цикл был рабочим, нужно переменную b сделать глобальной.
Python:
global b
d = " "
for i in data:
b = data[i]
c = i+": "+data[i]
d = d+c+', '
Можно также убрать пробел в начале записи с помощью lstrip(), и вывод на печать будет такой print(d.lstrip())
Запускаем программу, и получаем чистый список данных в виде строк
Но конечно лучше же иметь запись результатов в текстовом файле. Поэтому мы поменяем вывод на запись в файл и получим на выходе proxy.txt
Python:
with open('proxy.txt', 'a') as f:
print(d, file=f)
Текстовый файл это уже замечательно, но мы сделаем наши данные ещё более читаемыми. Для этого откроем proxy.txt с помощью EXEL. Выделим щелчком мышки столбец А, зайдём во вкладку "Данные" --> "Текст по столбцам"
Жмём далее, выставляем разделитель "запятая"
Ещё раз далее и ОК. Расставим ширину колонок как нам нравится и получим удобный и красивый результат. Но как говорится не все прокси одинаково хороши. Нам нужно отобрать наилучшие. Поэтому отсортируем наш лист по колонке D и получим в самом низу сервера с низкой анонимностью.
Теперь просто-напросто выделим строки с такими серверами и удалим. А затем снова отсортируем по столбцу F, и увидим следующий результат
Теперь можно сохранить XLS, и пользоваться самыми быстрыми прокси (колонка F). В колонке D выбираем при этом варианты с максимальной анонимностью. В данном примере самыми лучшими соответственно будут сервера в строках 1, 3, 6, 7, 8.
Ну вот мы спарсили и отобрали лучшие сервера. Работу с парсингом по этому сайту можно считать законченной. Там есть ещё другие странички с серверами, но мы их не будем парсить, нам же нужны только самые свежие сервера. Списки прокси обновляются каждый день, так что можно запускать программу раз в день, отбирать лучшие варианты в EXCEL и пользоваться.
Python:
import requests
from bs4 import BeautifulSoup
def get_html(site):
r = requests.get(site)
return r.text
def get_page_data(html):
soup = BeautifulSoup(html, 'lxml')
line = soup.find('table', id='theProxyList').find('tbody').find_all('tr')
for tr in line:
td = tr.find_all('td')
ip = td[1].text
port = td[2].text
country = td[3].text.replace('\xa0', '')
anonym = td[4].text.replace('\r\n ', '')
types = td[5].text.replace('\r\n\t\t\t\t\t', '').replace('\r\n ', '')
time = td[6].text
data = {'ip': ip,
'Порт': port,
'Страна': country,
'Анонимность': anonym,
'Тип': types,
'Время отклика': time}
global b
d = " "
for i in data:
b = data[i]
c = i+": "+data[i]
d = d+c+', '
with open('proxy.txt', 'a') as f:
print(d, file=f)
def main():
url = 'http://foxtools.ru/Proxy'
get_page_data(get_html(url))
if __name__ == '__main__':
main()
Последнее редактирование: