|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 63793.2815 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
24.06.2015, 23:19
|
#1
|
Go Fuck West
Регистрация: 07.05.2011
Адрес: .Net
Сообщений: 1,207
Бабло: $245620
|
Массовый парсинг sitemap.xml
Пис, бразерс
Есть необходимость спарсить sitemap.xml у пары-сотен доменов (свои доры). Ищется инструмент под это дело.
А-парсера, контент данлоадера нет.
Может у кого есть что на примете?
|
|
|
24.06.2015, 23:33
|
#2
|
Senior Member
Регистрация: 09.06.2015
Сообщений: 1,027
Бабло: $143960
|
Цитата:
#!/bin/bash
for i in $(cat domains.txt)
do
curl http://$i/sitemap.xml |grep blabla >> $i_links.txt
done
|
Грязно, но работает. Если дашь пример xml, смогу помочь точнее с регуляркой для грепа.
|
|
|
24.06.2015, 23:42
|
#3
|
Go Fuck West
Регистрация: 07.05.2011
Адрес: .Net
Сообщений: 1,207
Бабло: $245620
ТС -->
|
ТС
Цитата:
Сообщение от 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>
|
|
|
|
24.06.2015, 23:46
|
#4
|
Senior Member
Регистрация: 09.06.2015
Сообщений: 1,027
Бабло: $143960
|
Цитата:
#!/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.
|
|
|
24.06.2015, 23:49
|
#5
|
Go Fuck West
Регистрация: 07.05.2011
Адрес: .Net
Сообщений: 1,207
Бабло: $245620
ТС -->
|
ТС
|
|
|
24.06.2015, 23:56
|
#6
|
Senior Member
Регистрация: 09.06.2015
Сообщений: 1,027
Бабло: $143960
|
Если доменов много, а канал и сервер позволяют, проще распаралеллить (говнокод):
Цитата:
cat domains.txt | xargs -P 10 -n1 -I @ bash -c "curl @/sitemap.xml -s |grep -Po '(?<=<loc>).*(?=</loc)' >> "@"_links.txt"
|
Где 10 - количество потоков.
|
|
|
26.06.2015, 12:20
|
#7
|
01010100
Регистрация: 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"
|
|
|
08.07.2015, 10:45
|
#8
|
Senior Member
Регистрация: 18.05.2009
Сообщений: 928
Бабло: $196595
|
Корневой sitemap не всегда содержит прямые ссылки на документы, он может быть лишь оглавлением т.е. ссылаться на вложенные сайтмапы.
__________________
TgScan - узнай Telegram группы, в которых состоит человек
|
|
|
08.07.2015, 11:40
|
#9
|
Go Fuck West
Регистрация: 07.05.2011
Адрес: .Net
Сообщений: 1,207
Бабло: $245620
ТС -->
|
ТС
Цитата:
Сообщение от lorien
Корневой sitemap не всегда содержит прямые ссылки на документы, он может быть лишь оглавлением т.е. ссылаться на вложенные сайтмапы.
|
Спасибо, но я в курсе, что содержат мои собственные сайтмапы
|
|
|
12.07.2015, 21:30
|
#10
|
Senior Member
Регистрация: 18.05.2009
Сообщений: 928
Бабло: $196595
|
Да, я понимаю. Просто решил разговор поддержать
__________________
TgScan - узнай Telegram группы, в которых состоит человек
|
|
|
|