Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.7920
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 24.06.2015, 23:19   #1
Black West
Go Fuck West
 
Аватар для Black West
 
Регистрация: 07.05.2011
Адрес: .Net
Сообщений: 1,210
Бабло: $245600
Arrow Массовый парсинг sitemap.xml

Пис, бразерс
Есть необходимость спарсить sitemap.xml у пары-сотен доменов (свои доры). Ищется инструмент под это дело.
А-парсера, контент данлоадера нет.

Может у кого есть что на примете?
Black West вне форума  
Старый 24.06.2015, 23:33   #2
ivy
Senior Member
 
Регистрация: 09.06.2015
Сообщений: 969
Бабло: $135440
По умолчанию

Цитата:
#!/bin/bash
for i in $(cat domains.txt)
do
curl http://$i/sitemap.xml |grep blabla >> $i_links.txt
done
Грязно, но работает. Если дашь пример xml, смогу помочь точнее с регуляркой для грепа.
ivy вне форума  
Старый 24.06.2015, 23:42   #3
Black West
Go Fuck West
 
Аватар для Black West
 
Регистрация: 07.05.2011
Адрес: .Net
Сообщений: 1,210
Бабло: $245600
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от ivy
Грязно, но работает. Если дашь пример xml, смогу помочь точнее с регуляркой для грепа.
Как-та так
Цитата:
<urlset xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>http://xxx.ru/</loc>
<lastmod>2015-02-27</lastmod>
<changefreq>always</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Black West вне форума  
Старый 24.06.2015, 23:46   #4
ivy
Senior Member
 
Регистрация: 09.06.2015
Сообщений: 969
Бабло: $135440
По умолчанию

Цитата:
#!/bin/bash
for i in $(cat domains.txt)
do
curl http://$i/sitemap.xml |grep -Po '(?<=<loc>).*(?=</loc)' >> "$i"_links.txt
done
Вроде так.
Сохрани в файл, дай права на выполнение (chmod +x file.sh), запускай ./file.sh

Можно и многопоточно сделать через xargs.
ivy вне форума  
Старый 24.06.2015, 23:49   #5
Black West
Go Fuck West
 
Аватар для Black West
 
Регистрация: 07.05.2011
Адрес: .Net
Сообщений: 1,210
Бабло: $245600
ТС -->
автор темы ТС По умолчанию

Спасибо

Offtopic
Black West вне форума  
Старый 24.06.2015, 23:56   #6
ivy
Senior Member
 
Регистрация: 09.06.2015
Сообщений: 969
Бабло: $135440
По умолчанию

Если доменов много, а канал и сервер позволяют, проще распаралеллить (говнокод):
Цитата:
cat domains.txt | xargs -P 10 -n1 -I @ bash -c "curl @/sitemap.xml -s |grep -Po '(?<=<loc>).*(?=</loc)' >> "@"_links.txt"
Где 10 - количество потоков.
ivy вне форума  
Старый 26.06.2015, 12:20   #7
TOBBOT
01010100
 
Аватар для TOBBOT
 
Регистрация: 18.03.2015
Сообщений: 177
Бабло: $27925
По умолчанию

Решение на TOBBOT:

создать файл с колонками columns.txt и в него записать:
PHP код:
sitemap_url    URL карты сайта
sitemap_file    Файл для сохранения локальной копии 
создать файл действия actions/Get.txt и в него записать:
PHP код:
URL_GET    row_sitemap_url
FILE    row_sitemap_file
http_body"a" 
TOBBOT вне форума  
Старый 08.07.2015, 10:45   #8
lorien
Senior Member
 
Аватар для lorien
 
Регистрация: 18.05.2009
Сообщений: 879
Бабло: $177835
Отправить сообщение для lorien с помощью Skype™
По умолчанию

Корневой sitemap не всегда содержит прямые ссылки на документы, он может быть лишь оглавлением т.е. ссылаться на вложенные сайтмапы.
lorien вне форума  
Старый 08.07.2015, 11:40   #9
Black West
Go Fuck West
 
Аватар для Black West
 
Регистрация: 07.05.2011
Адрес: .Net
Сообщений: 1,210
Бабло: $245600
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от lorien
Корневой sitemap не всегда содержит прямые ссылки на документы, он может быть лишь оглавлением т.е. ссылаться на вложенные сайтмапы.
Спасибо, но я в курсе, что содержат мои собственные сайтмапы
Black West вне форума  
Старый 12.07.2015, 21:30   #10
lorien
Senior Member
 
Аватар для lorien
 
Регистрация: 18.05.2009
Сообщений: 879
Бабло: $177835
Отправить сообщение для lorien с помощью Skype™
По умолчанию

Да, я понимаю. Просто решил разговор поддержать
lorien вне форума