@David138

Как получить все ссылки на странице сайта?

Как получить все ссылки на странице сайта с помощь командной строки? Или это нужно делать все на питоне? других вариантов нет? Если нет, что не желательно, то каким образом это можно организовать на питоне?
  • Вопрос задан
  • 340 просмотров
Решения вопроса 4
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Из командной строки:
curl https://yandex.ru | grep -o -E 'href=\".*?\"' | sed 's/href=\"//' | sed 's/\"//' | sort | uniq


# //yandex.ru/opensearch.xml
# //yastatic.net/jquery/2.1.4/jquery.min.js
# https://afisha.yandex.ru/rostov-na-donu/cinema/cyrano-2022? utm_source=yamain&utm_medium=yamain_afisha_kp
# https://afisha.yandex.ru/rostov-na-donu/cinema/dog-2021?utm_source=yamain&utm_medium=yamain_afisha_kp
# https://afisha.yandex.ru/rostov-na-donu/cinema/kroletsyp-i-khomiak-tmy?utm_source=yamain&utm_medium=yamain_afisha_kp
...


На Python
import io
import requests
from lxml import etree

data = requests.get('https://yandex.ru').text

parser = etree.HTMLParser()
tree   = etree.parse(io.StringIO(data), parser)
for im in tree.xpath('//a'):
    print(im.get('href'))
Ответ написан
fzfx
@fzfx
18,5 дм
Например так:
curl -s https://qna.habr.com/ | grep -oP '(?<=a href=")\S+(?=")'
Ответ написан
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
Powershell в винде считается командной строкой? :)
Invoke-WebRequest https://yandex.ru | select $_.Links.href

возможно понадобится добавить ключ -usebasicparsing в зависимости от версии powershell
Ответ написан
laim731
@laim731
Айтишник
Если нужно собрать именно линки посмотри в сторону requests-html сделан на базе requests. Фишка в том что может собрать все урлы со страницы и ещё много разных плюшек для ленивых)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы