페이지 덤프에서 투표 수가 1보다 큰 명령만 표시해야 하는 문제가 있습니다.http://www.commandlinefu.com유닉스 명령을 사용하세요. 링크에 파일의 일부를 첨부했습니다.https://pastebin.com/4dEQD5us. 투표와 명령은 다음 html 태그로 표시됩니다.
div 클래스="투표" div 클래스="명령"
grep select 명령과 투표 태그를 사용해 보았습니다. 그런데 원하는 답을 얻기 위한 조건을 어떻게 설정해야 할지 모르겠습니다.
답변1
바닥에이 페이지, 해당 링크와 함께응용 프로그래밍 인터페이스. 읽고 이해하면 구문 분석에 적합한 형식(예: JSON)으로 데이터를 얻으려면 다음과 같이 사용할 수 있음을 알 수 있습니다.
curl -s 'https://www.commandlinefu.com/commands/browse/json'
이것은 다음을 사용하여 투표 수가 0보다 큰 명령을 쉽게 추출할 수 있는 JSON 문서입니다 jq
.
curl -s 'https://www.commandlinefu.com/commands/browse/json' |
jq -r '.[] | select(.votes|tonumber > 0).command'
.votes
최상위 배열의 각 항목은 데이터에서 문자열로 인코딩되므로 숫자로 변환 해야 합니다 . 이것이 바로 tonumber
0과 비교하기 전에 이를 전달하는 이유입니다.