Heim >Web-Frontend >HTML-Tutorial >POST抓取页面的问题_html/css_WEB-ITnose

POST抓取页面的问题_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:48:591120Durchsuche

某同学反映,spider通过post方式抓取某站点有问题,老是302到自己,具体如下:

url :http://www.meituan.com/multiact/default/deal/25814805.html

post数据:"yui_3_16_0_1_1423700000_000:{\"act\":\"deal/dynamiccomponent\",\"args\":25814805,\"__referer\":\"\"}"

通过python可以正常抓取,抓取代码如下:

import urllibimport urllib2values = {        'yui_3_16_0_1_1423700000_000':'{"act":"deal/dynamiccomponent","args":25814805,"__referer":""}',}header={        "X-Requested-With":"XMLHttpRequest",}url="http://www.meituan.com/multiact/default/deal/25814805.html"data = urllib.urlencode(values)print datareq = urllib2.Request(url, data,header)response = urllib2.urlopen(req)the_page = response.read()print the_page

但是自己构造http请求包无法抓取,请求包如下:
POST /multiact/default/deal/25814805.html HTTP/1.1^M
Host: www.meituan.com^M
Content-Length: 126^M
Connection: close^M
Content-Type: application/x-www-form-urlencoded^M
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2^M
Accept-Encoding: gzip^M
Accept: */*^M
X-Requested-With:  XMLHttpRequest^M


抓取失败原因,缺少该参数:Content-Type: application/x-www-form-urlencoded^M

加上就可以了,具体如下:

POST /multiact/default/deal/25814805.html HTTP/1.1^M
Host: www.meituan.com^M
Content-Length: 126^M
Connection: close^M
Content-Type: application/x-www-form-urlencoded^M
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2^M
Accept-Encoding: gzip^M
Accept: */*^M
X-Requested-With:  XMLHttpRequest^M

Content-Type: application/x-www-form-urlencoded^M

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn