PDA

Показать полную графическую версию : Помогите вытащить из этого сайта только ссылки


Dr. Comp
01-08-2013, 21:28
Привет! Хочу заблокировать все запрещенные ресурсы отсюда http://antizapret.info/ но там мешат даты и айпи адреса, помогите пожалуйста. Нужно чтобы был только список ссылок в виде столбца (.тхт) без ничего лишнего для вставки в конфигурационный файл.

Iska
02-08-2013, 01:10
Dr. Comp, легко — API (http://antizapret.info/api.php). PowerShell:
([System.Xml.XmlDocument]((New-Object System.Net.WebClient).DownloadString("http://api.antizapret.info/all.php?type=xml"))).register.content | ForEach-Object -Process {$_.domain.'#cdata-section'} | Set-Content -Path "E:\Песочница\0306\Domain list.txt"
Вместо выделенного можете сразу добавить команды для вставки извлечённых строк в Ваш «конфигурационный файл».

pva
02-08-2013, 08:01
Я делал так:

1. закачиваешь страницу index.html

wget -c http://antizapret.info/

2. Запускаешь скрипт cscript get_links.js <index.html следующего содержания:

var page = WScript.StdIn.ReadAll();

var
// prefix = "..\\gnu\\wget -c адрес ", // <-- команда для каждой ссылки. Я делал закачку
prefix ="",
re_link = /href\s*=\s*[\"\']([^\"\']+)[\"\']/gi,
// re_ext = /\.mp3$/i, // <--- дополнительный фильтр на ссылки, я искал *.mp3
re_ext =//,
load_list = {}

for(;;) {
var found = re_link.exec(page);
if (found==null) break;

if (re_ext.exec(found[1])) {
load_list[found[1]] = true;
}
}

for(var i in load_list) {
WScript.StdOut.WriteLine(prefix + i);
}


Говорят к браузерам есть плагины, которые делают то же самое, но с мышкотыкательным интерфейсом

torauma
02-08-2013, 08:29
Если со скриптами возиться нехочется:
Читаем http://antizapret.info/api.php

Получение текущего содержания реестра:
URL: http://api.antizapret.info/all.php
HTTP метод: GET
Параметры: type - необязательный, по умолчанию равен "csv", возвращает текущее содержимое реестра в формате CSV, также может принимать значение json - выводит содержимое реестра в формате JSON, xml - выводит содержимое реестра в формате XML.

Заходим на http://api.antizapret.info/all.php и сохраняем как текстовый файл с расширением csv. Остается только открыть в Excel'е и в пару кликов выдернуть список адресов.

Dr. Comp
02-08-2013, 08:50
http://api.antizapret.info/all.php на этой странице прям за все время сайты? Чет мало.

torauma
02-08-2013, 09:25
Вроде бы что на сайте, то и там. Кроме удаленных из реестра.

Dr. Comp
02-08-2013, 09:30
Еще есть такая проблема, кирилические aдреса неправильно отображаются в exel.

Iska
02-08-2013, 10:02
$sXmlDocument = New-Object System.Xml.XmlDocument

$sXmlDocument.load("http://api.antizapret.info/all.php?type=xml")
$sXmlDocument.register.content | ForEach-Object -Process {$_.url.'#cdata-section'} | Set-Content -Path "E:\Песочница\0306\Domain list.txt"

Dr. Comp, зачем Вам адреса? Вам же имена доменов нужны.

torauma
02-08-2013, 10:31
Кириллические адреса это вроде

c*******b.biz/threads/%D0%9A%D1%83%D1%80%D0%B5%D1%85%D0%B0-%D0%B8-%D0%BF%D0%BE%D1%80%D0%BE%D1%85-%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D1%8F%D1%80%D1%81%D0%BA-%D0%B7%D0%B0%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0%D0%BC%D0%B8.2031/
?
Дак вроде правильно все. Как на сайте так и в файле.
Чем именно Вы их блокировать собираетесь. Вполне возможно, что прокси такую запись поймут, а firewall'ы, насколько я помню, позволяют только по IP блокировать. Или у вас оборудование DPI поддерживает? Ростелеком, например, заявил, что у них денег на DPI нет и блокируют по IP.

Iska
02-08-2013, 11:57
Кириллические адреса это вроде… »
http://swimpool.biz/forum/forums/Предложения-о-покупке.8/

и т.п.

torauma
02-08-2013, 14:02
Iska, фактически дублируете мое предположение. Но хотелось бы узнать, что Dr. Comp подразумевает под кириллическими адресами и некорректностью их отображения в Excel. Возможно, что он не знает про http://www.w3.org/International/O-URL-code.html и принял это за некорректное отображение.
P.S. Я бы рекомендовал частично скрывать ссылки при цитировании из реестра, а то чего доброго добавят в него OSzone.net за распространение ссылок на запрещенную информацию.




© OSzone.net 2001-2012