며칠 고민 끝에 드디어 그 이유를 알아냈습니다. 여기에 적어두고 전문가에게 수정을 요청하세요.
컬렉션 프로그램의 아이디어는 매우 간단합니다. 일반적으로 목록 페이지인 페이지를 열고 거기에 있는 모든 링크의 주소를 가져온 다음 링크를 하나씩 열어서 찾는 것입니다. 우리가 관심을 갖고 있는 것. 발견되면 데이터베이스에 넣거나 다른 처리를 하십시오. 아주 간단한 예를 들어 이야기해 보겠습니다.
먼저 컬렉션 페이지(일반적으로 목록 페이지)를 결정합니다. 여기의 대상은 http://www.jb51.net/article/11/index.htm입니다. 이것은 목록 페이지이며, 우리의 목적은 이 목록 페이지에 있는 모든 기사를 수집하는 것입니다.
목록 페이지가 있습니다. 첫 번째 단계는 목록 페이지를 열고 해당 콘텐츠를 프로그램에 통합하는 것입니다. 일반적으로 fopen 또는 file_get_contents 두 가지 함수가 사용됩니다. 여기서는 fopen을 예로 사용합니다. 그것을 여는 방법? 매우 간단합니다. $source=fopen("http://www.jb51.net/article/11/index.htm",'r') 실제로 해당 내용이 우리 프로그램에 통합되었습니다. 획득한 $source는 처리할 수 있는 텍스트가 아니라 리소스이므로 fread 함수를 사용하여 내용을 변수로 읽어옵니다. 예:
$c//www.jb51.net/article/7/all/545.1.htm)]. 소스코드를 보면, 내부 기사의 링크 주소가 모두 다음과 같은 것을 알 수 있습니다
데이터베이스 연결 코드를 함수에 캡슐화하여 읽어야 할 때 호출합니다.. 정규식을 작성할 수 있습니다. $count=preg_match_all("/
(. ?)/",$content,$art_list)
$art_list[1][$s] 배열에는 기사의 링크 주소가 포함되어 있습니다. 그리고 $art_list[2][$s]에는 특정 기사의 제목이 포함되어 있습니다. 이쯤 되면 전투의 절반이라고 볼 수 있다.
그런 다음 for 루프를 사용하여 각 링크를 차례로 클릭한 다음 제목과 같은 방식으로 콘텐츠를 가져옵니다. 위의 내용은 온라인에서 찾은 튜토리얼과 비슷하지만, 이 for 루프의 경우 온라인 튜토리얼이 형편없습니다. 처음에는 루프를 돕기 위해 js를 사용했습니다. , 또는 사용된 예를 들어 보겠습니다. 처음에는
for($i=0;$i<20;4i {
중간이 콘텐츠 수집 부분입니다. 한 페이지를 수집했는데 반드시 다른 페이지를 수집해야 합니다
그런데 fopen을 사용하여 링크를 열면 작동하지 않고, 결국에는 작동하지 않습니다. echo "}
내 두뇌 조금 불편하고 글이 좀 지저분하네요. 전문가의 관점에서는 이것이 문제일 수도 있지만 저 같은 초보자에게는 정말 도움이 됩니다.
위 내용은 프로그램 내용을 포함하여 PHP 수집 프로그램 원리 분석을 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31