OK, 여기에 계정에 로그인하는 동안 라이브 HTTP 헤더에서 가져온 헤더 (단지 예) 정보입니다 : 일반적으로그들이 실제 브라우저에서 발생한처럼 보이도록 요청을 기계화 얻는 방법
http://example.com/login.html
POST /login.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://example.com
Cookie: blahblahblah; blah = blahblah
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
username=shane&password=123456&do=login
HTTP/1.1 200 OK
Date: Sat, 18 Dec 2010 15:41:02 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.14
Set-Cookie: blah = blahblah_blah; expires=Sun, 18-Dec-2011 15:41:02 GMT; path=/; domain=.example.com; HttpOnly
Set-Cookie: blah = blahblah; expires=Sun, 18-Dec-2011 15:41:02 GMT; path=/; domain=.example.com; HttpOnly
Set-Cookie: blah = blahblah; expires=Sun, 18-Dec-2011 15:41:02 GMT; path=/; domain=.example.com; HttpOnly
Cache-Control: private, no-cache="set-cookie"
Expires: 0
Pragma: no-cache
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 4135
Keep-Alive: timeout=10, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
나는 것 다음과 같은 코드 :
import mechanize
import urllib2
MechBrowser = mechanize.Browser()
LoginUrl = "http://example.com/login.html"
LoginData = "username=shane&password=123456&do=login"
LoginHeader = {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)", "Referer": "http://example.com"}
LoginRequest = urllib2.Request(LoginUrl, LoginData, LoginHeader)
LoginResponse = MechBrowser.open(LoginRequest)
위의 코드는 정상적으로 작동합니다. 내 질문은, 또한이 다음 줄을 (이전 헤더 정보에서 더) LoginHeader
에 추가해야 파이어 폭스의 서핑처럼 보이게 만들고 기계화하지 않는 것인가?
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
"실제"보이게하기 위해 스푸핑해야하는 부분과 헤더 정보의 수는 얼마나됩니까?
다시 한 번 감사드립니다. – Shane
스크립트 네트워크 연결을 모니터링 할 수있는 도구가 있습니까? 따라서 서버와 스크립트간에 전송되는 데이터를 알 수 있습니다. – Shane
JavaScript? 라이브 HTTP 헤더로 처리해야합니다. 파이썬 스크립트? 더 세게, 그러나 WireShark와 같은 소프트웨어를 스니핑하는 패킷은 그것을 할 것이다. 두 경우 모두 비 스크립트 노이즈가 많이 발생하지만 많은 유용한 정보를 제공 할 수 있습니다. – TryPyPy