PHP 스누피의 사용법은 무엇입니까

coldplay.xixi
풀어 주다: 2023-03-08 16:42:01
원래의
2102명이 탐색했습니다.

php 스누피 사용법: 1. [fetch($URI)] 웹 페이지의 콘텐츠를 캡처합니다. 2. [fetchtext($URI)] HTML 태그 및 기타 관련 없는 데이터를 제거합니다. ] 웹 페이지의 양식 내용을 반환합니다.

PHP 스누피의 사용법은 무엇입니까

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 5.6, DELL G3 컴퓨터.

php snoopy 사용법:

Snoopy 클래스 메소드 및 예:

1,fetch($URI)fetch($URI)

这是为了抓取网页的内容而使用的方法。

$URI参数是被抓取网页的URL地址。

抓取的结果被存储在 $this->results 中。

如果你正在抓取的是一个框架,Snoopy将会将每个框架追踪后存入数组中,然后存入 $this->results。

2、fetchtext($URI)

本方法类似于fetch(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中的文字内容。

3、fetchform($URI)

本方法类似于fetch(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中表单内容(form)。

4、fetchlinks($URI)

本方法类似于fetch(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。

默认情况下,相对链接将自动补全,转换成完整的URL。

5、submit($URI,$formvars)

本方法向$URL指定的链接地址发送确认表单。$formvars是一个存储表单参数的数组。

6、submittext($URI,$formvars)

本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回登陆后网页中的文字内容。

7、submitlinks($URI)

本方法类似于submit(),唯一不同的就是本方法会去除HTML标签和其他的无关数据,只返回网页中链接(link)。

默认情况下,相对链接将自动补全,转换成完整的URL。

Snoopy采集类属性: (默认值在括号里)

$host 连接的主机

$port 连接的端口

$proxy_host 使用的代理主机,如果有的话

$proxy_port 使用的代理主机端口,如果有的话

$agent 用户代理伪装 (Snoopy v0.1)

$referer 来路信息,如果有的话

$cookies cookies 如果有的话

$rawheaders 其他的头信息, 如果有的话

$maxredirs 最大重定向次数, 0=不允许 (5)

$offsiteok whether or not to allow redirects off-site. (true)

$expandlinks 是否将链接都补全为完整地址 (true)

$user 认证用户名, 如果有的话

$pass 认证用户名, 如果有的话

$accept http 接受类型 (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)

$error 哪里报错, 如果有的话

$response_code 从服务器返回的响应代码

$headers 从服务器返回的头信息

$maxlength 最长返回数据长度

$read_timeout 读取操作超时 (requires PHP 4 Beta 4+) 设置为0为没有超时

$timed_out 如果一次读取操作超时了,本属性返回 true (requires PHP 4 Beta 4+)

$maxframes 允许追踪的框架最大数量

$status 抓取的http的状态

$temp_dir 网页服务器能够写入的临时文件目录 (/tmp)

$curl_path cURL binary 的目录, 如果没有cURL binary就设置为 false

下面是一个示例:

代码如下:

include "Snoopy.class.php"; $snoopy = new Snoopy; $snoopy->proxy_host = "https://www.jb51.net"; $snoopy->proxy_port = "80"; $snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; $snoopy->referer = "https://www.jb51.net"; $snoopy->cookies["SessionID"] = 238472834723489l; $snoopy->cookies["favoriteColor"] = "RED"; $snoopy->rawheaders["Pragma"] = "no-cache"; $snoopy->maxredirs = 2; $snoopy->offsiteok = false; $snoopy->expandlinks = false; $snoopy->user = "joe"; $snoopy->pass = "bloe"; if($snoopy->fetchtext("https://www.jb51.net")) { echo "
".htmlspecialchars($snoopy->results)."
\n"; } else echo "error fetching document: ".$snoopy->error."\n";
로그인 후 복사

获取指定url内容

代码如下:

fetch($url); //获取所有内容 echo $snoopy->results; //显示结果 //可选以下 $snoopy->fetchtext //获取文本内容(去掉html代码) $snoopy->fetchlinks //获取链接 $snoopy->fetchform //获取表单 ?>
로그인 후 복사

表单提交

代码如下:

表单提交地址 $snoopy->submit($action,$formvars);//$formvars为提交的数组 echo $snoopy->results; //获取表单提交后的 返回的结果 //可选以下 $snoopy->submittext; //提交后只返回 去除html的 文本 $snoopy->submitlinks;//提交后只返回 链接 ?>
로그인 후 복사

既然已经提交的表单 那就可以做很多事情 接下来我们来伪装ip,伪装浏览器

伪装浏览器

代码如下:

cookies["PHPSESSID"] = 'fc106b1918bd522cc863f36890e6fff7'; //伪装sessionid $snoopy->agent = "(compatible; MSIE 4.01; MSN 2.5; AOL 4.0; Windows 98)"; //伪装浏览器 $snoopy->referer = "https://www.jb51.net"; //伪装来源页地址 http_referer $snoopy->rawheaders["Pragma"] = "no-cache"; //cache 的http头信息 $snoopy->rawheaders["X_FORWARDED_FOR"] = "127.0.0.101"; //伪装ip $snoopy->submit($action,$formvars); echo $snoopy->results; ?>
로그인 후 복사

原来我们可以伪装session 伪装浏览器 ,伪装ip, haha 可以做很多事情了。

例如:带验证码,验证ip 投票, 可以不停的投。

ps:这里伪装ip ,其实是伪装http头, 所以一般的通过REMOTE_ADDR

웹페이지의 콘텐츠를 크롤링하는 데 사용되는 메소드입니다.

$URI 매개변수는 크롤링된 웹페이지의 URL 주소입니다.

가져온 결과는 $this->results에 저장됩니다.

프레임을 스크랩하는 경우 스누피는 각 프레임을 추적하여 배열에 저장한 다음 $this->result에 저장합니다.

2. fetchtext($URI)

이 메서드는 fetch()와 유사합니다. 유일한 차이점은 이 메서드는 HTML 태그 및 기타 관련 없는 데이터를 제거하고 텍스트 내용만 반환한다는 것입니다. 웹페이지.

3.fetchform($URI)이 메서드는 fetch()와 유사합니다. 유일한 차이점은 이 메서드가 HTML 태그 및 기타 관련 없는 데이터를 제거하고 양식 콘텐츠( 형태 ).

4. fetchlinks($URI)이 메서드는 fetch()와 유사하지만 유일한 차이점은 이 메서드는 HTML 태그 및 기타 관련 없는 데이터를 제거하고 웹의 링크만 반환한다는 것입니다. 페이지. 기본적으로 상대 링크는 자동으로 완성되어 완전한 URL로 변환됩니다. 5. submit($URI,$formvars)이 메소드는 $URL에 지정된 링크 주소로 확인 양식을 보냅니다. $formvars는 양식 매개변수를 저장하는 배열입니다. 6. submittext($URI,$formvars)이 메서드는 submit()과 유사하지만 유일한 차이점은 이 메서드가 HTML 태그 및 기타 관련 없는 데이터만 반환한다는 것입니다. 로그인 웹페이지의 텍스트 콘텐츠입니다. 7. submitlinks($URI)이 방법은 submit()과 유사하지만 유일한 차이점은 이 방법은 HTML 태그 및 기타 관련 없는 데이터를 제거하고 웹의 링크만 반환한다는 것입니다. 페이지. 기본적으로 상대 링크는 자동으로 완성되어 완전한 URL로 변환됩니다. Snoopy 컬렉션 클래스 속성: (기본값은 대괄호 안에 있음)$host 연결된 호스트 $port 연결된 포트 $proxy_host 사용된 프록시 호스트(있는 경우) $proxy_port 사용된 프록시 호스트 포트 , 있는 경우 $agent 사용자 에이전트 위장(Snoopy v0.1) $referer 소스 정보(있는 경우) $cookies 쿠키(있는 경우) $rawheaders 기타 헤더 정보(있는 경우) $maxredirs 최대 수 리디렉션, 0=허용되지 않음 (5)$offsiteok 오프사이트 리디렉션을 허용할지 여부(true)$expandlinks 전체 주소에 대한 모든 링크를 완료할지 여부(true)$user 인증 사용자 이름, if any $pass 인증 사용자 이름(있는 경우) $accept http 허용 유형(image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)$error 오류가 보고되는 위치 , if any$response_code 서버에서 반환된 응답 코드$headers 서버에서 반환된 헤더 정보$maxlength 반환된 가장 긴 데이터 길이 $read_timeout 읽기 작업 시간 초과(PHP 4 Beta 4+ 필요) 설정 시간 초과 없이 0으로 설정 $timed_out 읽기 작업 시간이 초과되면 이 속성은 true를 반환합니다(PHP 4 Beta 4+ 필요) $maxframes는 추적을 허용합니다. 최대 프레임 수$status 캡처된 http의 상태 $temp_dir 웹 서버가 쓸 수 있는 임시 파일 디렉터리(/tmp)$curl_path cURL 바이너리가 있는 디렉터리, cURL 바이너리가 없으면 false로 설정 다음은 예시입니다. 코드는 다음과 같습니다.
proxy_host = "https://www.jb51.net"; $snoopy->proxy_port = "8080"; //使用代理 $snoopy->maxredirs = 2; //重定向次数 $snoopy->expandlinks = true; //是否补全链接 在采集的时候经常用到 // 例如链接为 /images/taoav.gif 可改为它的全链接 https://www.jb51.net/images/taoav.gif $snoopy->maxframes = 5 //允许的最大框架数 //注意抓取框架的时候 $snoopy->results 返回的是一个数组 $snoopy->error //返回报错信息 ?>
로그인 후 복사
지정된 URL의 콘텐츠를 가져옵니다코드는 다음과 같습니다.
rrreee양식 제출코드는 다음과 같습니다.
rrreee이제 제출된 양식으로 많은 일을 할 수 있습니다. 다음으로 IP와 브라우저를 위장해 보겠습니다브라우저를 위장해 보세요코드는 다음과 같습니다.
rrreee됩니다. 세션을 위장하고, 브라우저를 위장하고, IP를 위장할 수 있다는 사실을 알게 되었습니다. 하하. 예: 인증번호와 IP를 인증하여 투표하면 연속적으로 투표할 수 있습니다. ps: 여기에서 IP를 위장하는 것은 실제로는 http 헤더를 위장하는 것이므로 REMOTE_ADDR를 통해 얻은 IP는 위장할 수 없으나 http 헤더를 통해 얻은 IP(프록시를 방지할 수 있음) 종) 자신의 IP를 만들 수 있습니다. 코드를 확인하는 방법에 대해 간단히 이야기하자면: 먼저 일반 브라우저를 사용하여 페이지를 보고, 인증 코드에 해당하는 세션 ID를 찾은 다음, 세션 ID와 인증 코드 값을 기록한 다음 스누피를 사용하여 위조합니다. . 원칙: 세션ID가 동일하기 때문에 획득한 인증코드는 처음 입력한 인증코드와 동일합니다. 때때로 우리는 더 많은 것을 가짜로 만들어야 할 수도 있습니다. 스누피는 우리를 위해 그것을 완전히 생각했습니다.rrreee관련 비디오 추천: 초보부터 마스터까지 PHP 프로그래밍

위 내용은 PHP 스누피의 사용법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!