2014-11-14 4 views
1

Bash 스크립트에서 하이퍼 참조를 찾아야합니다.각 속성에 string() 함수를 적용하는 방법은 무엇입니까?

curl --silent -L google.com | xmllint --html --xpath '//a/@href' - 

하지만 속성의 값이 필요합니다

다음 명령은 curlxmllint는 HTML 페이지의 모든 href 속성을 읽을 사용합니다. 속성의 값은 string() 기능으로 선택할 수 있습니다. 내가 그것을 사용하는 경우, 나는 속성 목록의 첫 번째 요소를 얻을 :

curl --silent -L google.com | xmllint --html --xpath 'string(//a/@href)' - 

가 어떻게 각 속성으로하여 string() 기능을 적용 할 수 있는가?

curl --silent -L google.com | xmllint --html --xpath '//a/@*'

을 한 다음 원하는 값을 얻을 수있는 속성 이름을 필터링, sed로 출력을 보낼 또 다른 파이프를 추가 : 당신은 할 수

+0

과 xpath 2는'// a/@ href/string()'이 될 것이지만 xmllint에서는 사용할 수 없습니다 (아직) –

답변

0

는 (XPath 식의 차이를 알). 그러나 이것은 문서에서 물건을 추출하는 이상한 방법입니다.

+0

sre에 href보다 많은 속성을 보내야하는 이유는 무엇입니까? BTW 나는 이미 sed 해결 방법을 사용하고 있지만 그렇게하면 중첩 된 작은 따옴표와 큰 따옴표를 올바르게 처리 할 수 ​​없게됩니다. 그리고 더 나은 XPath 기반 솔루션을 얻고 싶습니다. – ceving

+0

추가 속성에 대해 신경 쓰지 마라. 나는 당신의 질문에 대해 혼란스러워했다. 더 나은 솔루션을 원한다면 xmllint를 사용하는 대신에 여기에서 할 일을 수행하는 빠른 Python 스크립트를 작성하는 것이 좋습니다 (이 컨텍스트에서는별로 좋지 않습니다). 시작하려면 몇 가지 샘플 코드를보고 싶다면 알려주십시오. – JKesMc9tqIQe9M

+0

필자는 파이썬에 대해 잘 모르지만 필자는 솔라리스 10 서버에서 파이썬을 사용해야한다는 사실을 알 수 없다고 생각합니다. – ceving