나는 수천 건의 요청을 만들기 위해 CURL을 사용하고 있습니다. 내 코드에서는 쿠키를 특정 값으로 설정 한 다음 페이지의 값을 읽습니다.효율적으로 수천 개의 말풍선을 만들 수 있습니다.
그래서#!/usr/bin/perl
my $site = "http://SITENAME/?id=";
my $cookie_name = "cookienum123";
print $fh "#\t\tValue\n";
for my $i ('1'..'10000') {
my $output = `curl -s -H "Cookie: $cookie_name=$i" -L $site$i | grep -Eo "[0-9]+"`;
print "$i\t\t$output\n";
}
1에서 10000에, 나는 그 값에 cookienum123를 설정하고 페이지에서 전체 응답 읽고있다 : 여기 내 펄 코드입니다. 그런 다음 grep을 사용하여 #을 추출합니다. 지금 코드는 잘 작동하지만 더 빠르고 효율적인 방법이 있는지 궁금합니다.
이 작업은 Perl 스크립트로 수행 할 필요가 없습니다 (Windows 배치 파일, Unix 쉘 스크립트 등도 사용할 수 있음).
편집 1 월 18 일 : 덧붙여 "원하는 답변에는 수천 개의 컬 요청을 동시에 실행하는 방법이 포함되어야하지만 현재 실행중인 속도보다 빠르게 실행해야합니다. 결국 단일 파일에 출력을 쓰지 만 순서는 중요하지 않습니다. " 아래의 주석 중 일부는 포크을 언급하지만 내 코드에 어떻게 적용해야할지 모르겠다. 나는 이것이 Perl의 첫 번째 프로그램이기 때문에 Perl을 처음 사용하는 사람이다.
한 번에 20 개씩 여러 어린이에게 분기하는 것은 어떨까요? 한 번에 여러 번 실행할 수 있습니까? – TheJester1977
Net :: Curl :: Multi를 사용하면 컬 라이브러리에 병렬 요청을 할 수 있습니다. 물론 Parallel :: ForkManager도 다중'curl' 프로세스를 망치고 있습니다 – ikegami
@ TheJester1977 어떻게 여러개의 자식에게 포크를 걸 수 있습니까? – Bijan