2013-05-16 2 views
1

저는 초보 프로그래머로서 현재 자바를 사용하고 있습니다. 친구가 나에게 bash에서 가장 잘 수행 할 것이라고 말한 프로그램에 대한 아이디어가 있었지만 다른 프로그래밍 언어를 배울 시간이 없습니다. 기본적으로 url을 요청한 다음 url로 이동하여 지정한 정규 표현식 태그 사이에 정보를 추출한 다음 해당 정보를 Excel 스프레드 시트에 넣으려고합니다.bash 스크립트를 사용하여 html에서 정보 추출

+0

구문 분석 HTML 것 원하는 경우 - 그것은 신뢰할 수없는 그리고 당신은 HTML로 무언가를 표현하는 많은 방법 (그리고 문서를 바꿀 수있는 프레임과 스크립팅은 어떨까요?)에 대해 설명해야합니다. 이런 식으로하고 싶다면 원하는 태그와 같은 세부 정보를 게시하십시오. –

+0

정규식을 사용하여 xml을 구문 분석하지 않으려합니다. 논리의 대부분이 그것을 기반으로한다면 정규식은 곧 악몽이됩니다. 라이브러리를 사용하여 xml을 구문 분석하는 것이 좋습니다. 그 중 하나가 매우 구체적인 요청이 있다면 스크립팅이 재미있을 수 있습니다. – Lynch

답변

1

을 사용하면 curl url> out.txt를 사용하고 grep regex out.txt (정규식을 포함한 행을 가져옵니다)를 사용하십시오. 위에서 언급 한 바와 같이 bash는 매우 신뢰할 수 없기 때문에 압축을 풀려고하는 것에 따라 실제 프로그래밍 언어를 사용할 수 있습니다.

1

bash에서 html을 구문 분석하는 것은 일반적으로 좋지 않은 아이디어인데,이 방법을 사용하면 가치가있을 수 있습니다.

예를 들어,이 주어진 URL에서 제목 태그를 가져옵니다

wget --no-check-certificate --quiet -O - http://someurl.com \ 
| paste -sd ' ' - \ 
| grep -o -e '<head[^>]*>.*</head>' \ 
| grep -o -e '<title>.*</title>' \ 
| cut -d '>' -f 2 \ 
| cut -d '<' -f 1 \ 
| tr -d ' ' \ 
| sed 's| *\(.*\)|\1|g' \ 
| paste -s -d '\n' - 

이 (제목 태그, 정확한 여러 제목 태그 없음)이 잘못 될 수있는 방법에는 무한한 방법이있다. 특정한 경우에 저는 그것을 사용하고 있습니다. 일회용은 어쨌든 인간에 의해 검토 될 것입니다.

BASH를 처음 사용하는 경우 시작하기 전에 읽어야하는 명령에 대한 아이디어를 얻을 수 있습니다. 자바를 알고 있다면, 그것을 써라.

2

Mac의 경우 xmllint를 확인해야합니다. 유닉스 맛을위한 xmlstarlet. 비슷한 쉘 스크립트를 사용하기 전에 두 가지 방법을 모두 사용 했었습니다. 예를 들어

wget target_url -q -O - > test.html 
xmlstarlet sel -t -c "!doctype/html/collection/item[property=1234]" test.html 

<item> 
    <foo>hello</foo> 
    <baz>world</baz> 
    <property>1234</property> 
</item> 
당신은 '수집/항목'에 대한 검색 태그에 아래로 탐구하기 위해 문서 트리를 알아야 할 것

같은 것입니다 얻을 수 있습니다 보기.

당신은 HTML의 진짜 힘은 BeatifulSoup 파이썬을 확인된다고하지만, bash는 스크립트가 고전 *하지 마 * -example입니다으로 즉이 경우에는 과잉