Главная > Soft > Как получить список бесплатных proxy

Как получить список бесплатных proxy

Как получить список бесплатных proxyКак хорошо уметь писать!
Не надо к другу приставать,
Не надо умолять админа:
«Ну, напиши ты скрипт, скотина».
Не надо звать,
Не надо ждать,
А можно взять
И написать!

Именно такие строки приходят в голову, когда понимаешь, как хорошо уметь программировать.

Одним прекрасным днём возникла необходимость получить список proxy, которые можно использовать для скачивания картинок с хостинга файлов. Сразу же возник вопрос, где взять список proxy адресов, которые можно использовать для этой цели.

Был рассмотрен вариант скачивания списков бесплатных proxy адресов, но это казалось архаизмом. Поэтому пришлось искать сайты, где эти списки обновлялись бы регулярно. И тут был найден сайт proxylist.hidemyass.com. Сайт продаёт списки proxy и пытается всячески защитить свои публичные списки от парсинга, поэтому на сайте адрес выглядит нормально, но html код сильно запутан.

Пример зашифрованного адреса:

<span><style>
.L7LU{display:none}.aLHF{display:inline}.znYB{display:none}.NEeP{display:inline}
.Gqyo{display:none}.io_r{display:inline}.RnfE{display:none}.K-oF{display:inline}
</style><div style=»display:none»>40</div><span style=»display:none»>42</span><div style=»display:none»>42</div><div style=»display:none»>49</div><span style=»display:none»>96</span><span class=»znYB»>96</span><span style=»display:none»>105</span><div style=»display:none»>105</div><span class=»98″>190</span><span style=»display:none»>219</span><span class=»RnfE»>219</span><div style=»display:none»>219</div><span class=»RnfE»>225</span><span></span><span style=»display: inline»>.</span><div style=»display:none»>9</div>39<span class=»L7LU»>62</span><div style=»display:none»>62</div><span style=»display:none»>116</span><span class=»RnfE»>116</span><div style=»display:none»>116</div><span style=»display:none»>128</span><div style=»display:none»>128</div><span class=»RnfE»>160</span><span></span><span style=»display:none»>247</span><span class=»znYB»>247</span><div style=»display:none»>247</div><span class=»RnfE»>254</span><div style=»display:none»>254</div><span class=»K-oF»>.</span><span style=»display:none»>7</span><span class=»Gqyo»>7</span><div style=»display:none»>7</div><span></span><span style=»display:none»>56</span><div style=»display:none»>56</div><span style=»display:none»>58</span><span class=»L7LU»>58</span><div style=»display:none»>58</div><span style=»display:none»>68</span><span class=»Gqyo»>68</span><span class=»znYB»>77</span><div style=»display:none»>77</div><span class=»Gqyo»>82</span><div style=»display:none»>82</div><span style=»display:none»>104</span><span></span><span class=»91″>123</span><div style=»display:none»>133</div><span style=»display:none»>160</span><span></span><span style=»display:none»>165</span><div style=»display:none»>165</div><span style=»display:none»>189</span><span style=»display:none»>224</span><div style=»display:none»>224</div><span style=»display:none»>238</span><span></span><span class=»K-oF»>.</span><span style=»display:none»>12</span><span class=»znYB»>12</span><span class=»Gqyo»>26</span><div style=»display:none»>35</div><div style=»display:none»>78</div><span class=»L7LU»>84</span><div style=»display:none»>84</div><span style=»display:none»>86</span><span class=»Gqyo»>86</span><span style=»display:none»>105</span><span class=»RnfE»>105</span><span></span><span style=»display:none»>152</span><span class=»RnfE»>152</span><div style=»display:none»>152</div><span style=»display: inline»>171</span><span style=»display:none»>184</span><span class=»L7LU»>184</span><div style=»display:none»>211</div><div style=»display:none»>239</div></span>

Первым действием нужно убрать тэги со стилем style=»display:none». Содержимое таких тэгов не видно.

Результат:

<span><style>
.L7LU{display:none}.aLHF{display:inline}.znYB{display:none}.NEeP{display:inline}
.Gqyo{display:none}.io_r{display:inline}.RnfE{display:none}.K-oF{display:inline}
</style><span class=»znYB»>96</span><span class=»98″>190</span><span class=»RnfE»>219</span><span class=»RnfE»>225</span><span></span><span style=»display: inline»>.</span>39<span class=»L7LU»>62</span><span class=»RnfE»>116</span><span class=»RnfE»>160</span><span></span><span class=»znYB»>247</span><span class=»RnfE»>254</span><span class=»K-oF»>.</span><span class=»Gqyo»>7</span><span></span><span class=»L7LU»>58</span><span class=»Gqyo»>68</span><span class=»znYB»>77</span><span class=»Gqyo»>82</span><span></span><span class=»91″>123</span><span></span><span></span><span class=»K-oF»>.</span><span class=»znYB»>12</span><span class=»Gqyo»>26</span><span class=»L7LU»>84</span><span class=»Gqyo»>86</span><span class=»RnfE»>105</span><span></span><span class=»RnfE»>152</span><span style=»display: inline»>171</span><span class=»L7LU»>184</span></span>

Сейчас код выглядит лучше, но нужно продолжать дальше. Нужно выбрать стили с параметром display:none и удалить тэги с ними и сами стили:

<span><style>
.aLHF{display:inline}.NEeP{display:inline}.io_r{display:inline}.K-oF{display:inline}
</style><span class=»98″>190</span><span></span><span style=»display: inline»>.</span>39<span></span><span class=»K-oF»>.</span><span></span><span></span><span class=»91″>123</span><span></span><span></span><span class=»K-oF»>.</span><span></span><span style=»display: inline»>171</span></span>

После этого мы удаляем всё содержание тэга style и всё, что между символами < и >, как и сами символы:

190.39.123.171

В результате получается чистый адрес, которым можно использовать, предварительно проверив на валидность, скачав что-нибудь. Остальное остаётся делом техники: скачать страницу со списком proxy, найти на ней таблицу с адресами, разобрать её на строки и столбцы.

API для парсинга

Пример использования API:

HideMyAss hideMyAss = HideMyAssFactory.createHideMyAss(new ContentLoaderImpl());
List<HideMyAssProxy> proxies = hideMyAss.getProxies();

В примере ContentLoaderImpl отвечает за загрузку страницы с сайта.

Categories: Soft Tags: ,
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.