<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Простой веб-скрейпер для The Dude.]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Простой веб-скрейпер для The Dude. форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Mon, 17 Aug 2026 00:56:45 -0400</pubDate>
		<item>
			<title>Простой веб-скрейпер для The Dude.</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/59974-prostoy-veb_skreyper-dlya-the-dude./message228255">Простой веб-скрейпер для The Dude.</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Мне нужен был способ автоматизировать экспорт названий устройств и IP-адресов для использования в других автоматизированных процессах. Я знаю, что можно использовать графический интерфейс The Dude и правой кнопкой мыши экспортировать, но мне нужно было что-то, что может запускаться по расписанию. <noindex><a href="http://nocwiz.com/2013/12/29/using-mikrotiks-dude-network-device-repository/" target="_blank" rel="nofollow" >http://nocwiz.com/2013/12/29/using-mikrotiks-dude-network-device-repository/</a></noindex> #<br /># NOCwiz.com представляет The Dude Network Device Repository<br />#<br /># dudendr.py позволяет использовать Mikrotik's The Dude<br /># в качестве NDR. Этот скрипт будет извлекать IP-адреса и названия устройств<br /># из веб-интерфейса The Dude.<br />#<br /># Требуются модули Python Requests и BeautifulSoup<br />#<br /> <br /># В этом примере просто жёстко закодируем все параметры<br />username &nbsp; &nbsp;= 'admin'<br />password &nbsp; &nbsp;= 'supersecret'<br />dudeaddr &nbsp; &nbsp;= '10.0.19.59'<br />filename &nbsp; &nbsp;= 'dudendr.csv'<br /> <br />import requests, urllib<br />from BeautifulSoup import BeautifulSoup<br /> <br />devicename = []<br />deviceurl = []<br />deviceip = []<br /> <br /># Создаём параметры для отправки в форму логина.<br />payload = {<br /> &nbsp; &nbsp;'process': 'login',<br /> &nbsp; &nbsp;'page': 'start',<br /> &nbsp; &nbsp;'password': password,<br /> &nbsp; &nbsp;'user': username<br />}<br /> <br /># Используем urllib для кодирования полезной нагрузки формы, затем отправляем<br />params = urllib.urlencode(payload)<br />page = 'http://'+dudeaddr+'/dude/main.html'<br />resp = requests.post(page, params=payload)<br /># Сохраняем cookie, так как теперь мы авторизованы<br />cookies = resp.cookies<br /> <br /># Получаем страницу со всеми устройствами<br />page = 'http://'+dudeaddr+'/dude/main.html?page=devices'<br />resp = requests.get(page,cookies=cookies)<br /> <br /># Обрабатываем результаты страницы<br /># Собираем названия устройств и URL-адреса<br />soup = BeautifulSoup(resp.text)<br />links = soup.findAll('a')<br />for a in links:<br /> &nbsp; &nbsp;if 'device_info' in a['href'] :<br /> &nbsp; &nbsp; &nbsp; &nbsp;devicename.append(a.string)<br /> &nbsp; &nbsp; &nbsp; &nbsp;deviceurl.append(a['href'])<br /> <br /># Обрабатываем все URL-адреса устройств, чтобы получить IP-адреса<br />for url in deviceurl:<br /> &nbsp; &nbsp;page = 'http://'+dudeaddr+url<br /> &nbsp; &nbsp;resp = requests.get(page,cookies=cookies)<br /> &nbsp; &nbsp;soup = BeautifulSoup(resp.text)<br /> &nbsp; &nbsp;result = soup.find(attrs={"name":"address"})<br /> &nbsp; &nbsp;deviceip.append(result['value'])<br /> <br /># Сохраняем результаты в CSV-файл<br />file = open(filename, "w")<br />for x in range(0,len(deviceurl)):<br /> &nbsp; &nbsp;file.write(devicename[x]+","+deviceip[x]+"\n")<br />file.close() <br />
			<i>29.12.2013 06:40:00, troysorzano.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/59974-prostoy-veb_skreyper-dlya-the-dude./message228255</link>
			<guid>http://mikrotik.moscow/forum/forum57/59974-prostoy-veb_skreyper-dlya-the-dude./message228255</guid>
			<pubDate>Sun, 29 Dec 2013 06:40:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
