Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url 反向工程:arrow.com上每页的结果_Url_Curl_Reverse Engineering - Fatal编程技术网

Url 反向工程:arrow.com上每页的结果

Url 反向工程:arrow.com上每页的结果,url,curl,reverse-engineering,Url,Curl,Reverse Engineering,我试图增加每页的结果,例如,当您打开: 该网站为您提供了通过单击链接50从显示10、25、50或100中进行选择的选项。现在我的问题是如何使用curl显示99999个结果。我曾经提出过以下HTTP请求,看起来它在一个页面中返回所有143个匹配项。我通过观察从下拉列表中选择“100个结果”时发送的HTTP请求来实现这一点。然后我复制了原始请求,将其粘贴到Fiddler2的RequestBuilder中,更改了limit=200,并执行了它。我将WebView中的响应与网站上显示的实际页面进行了比

我试图增加每页的结果,例如,当您打开:

该网站为您提供了通过单击链接50从显示10、25、50或100中进行选择的选项。现在我的问题是如何使用curl显示99999个结果。

我曾经提出过以下HTTP请求,看起来它在一个页面中返回所有143个匹配项。我通过观察从下拉列表中选择“100个结果”时发送的HTTP请求来实现这一点。然后我复制了原始请求,将其粘贴到Fiddler2的RequestBuilder中,更改了
limit=200
,并执行了它。我将WebView中的响应与网站上显示的实际页面进行了比较

POST http://components.arrow.com/part/search/BAV99 HTTP/1.1
Host: components.arrow.com
Proxy-Connection: keep-alive
Referer: http://components.arrow.com/part/search/BAV99
Content-Length: 331
Cache-Control: max-age=0
Origin: http://components.arrow.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __utmz=199791230.1309618262.1.1.utmcsr=stackoverflow.com|utmccn=(referral)|utmcmd=referral|utmcct=/questions/5359805/problem-while-parsing-html-xml-and-quering-with-xpath; __utma=199791230.901122760.1309618262.1309618262.1309618262.1; region=na; lang=en; JSESSIONID=s4CyTyHKHbwhJc2v1xXyv50s3mvshZmZJJzGYQNjpmHnw2MmcgyT!1070203391

sort1Name=&sort1Order=&start=0&docid=&cat=&filtMultiSelect=&catFiltAddOn=&chkButton=1&search_token=BAV99&limit=200&requestedURL=http%3A%2F%2Fext.partsearch.arrow.com%2Fnacpartservice%2Fsearch%3Fappid%3Dnac%26cc%3DUS%26cn%3DARROW%2FAMERICAS%26lang%3Den%26retfilt%3DY%26retreq%3DY%26srchtxt%3DBAV99%26start%3D0%26limit%3D10&taxonomy=
我曾经提出过以下HTTP请求,看起来它在一个页面上返回所有143个匹配项。我通过观察从下拉列表中选择“100个结果”时发送的HTTP请求来实现这一点。然后我复制了原始请求,将其粘贴到Fiddler2的RequestBuilder中,更改了
limit=200
,并执行了它。我将WebView中的响应与网站上显示的实际页面进行了比较

POST http://components.arrow.com/part/search/BAV99 HTTP/1.1
Host: components.arrow.com
Proxy-Connection: keep-alive
Referer: http://components.arrow.com/part/search/BAV99
Content-Length: 331
Cache-Control: max-age=0
Origin: http://components.arrow.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __utmz=199791230.1309618262.1.1.utmcsr=stackoverflow.com|utmccn=(referral)|utmcmd=referral|utmcct=/questions/5359805/problem-while-parsing-html-xml-and-quering-with-xpath; __utma=199791230.901122760.1309618262.1309618262.1309618262.1; region=na; lang=en; JSESSIONID=s4CyTyHKHbwhJc2v1xXyv50s3mvshZmZJJzGYQNjpmHnw2MmcgyT!1070203391

sort1Name=&sort1Order=&start=0&docid=&cat=&filtMultiSelect=&catFiltAddOn=&chkButton=1&search_token=BAV99&limit=200&requestedURL=http%3A%2F%2Fext.partsearch.arrow.com%2Fnacpartservice%2Fsearch%3Fappid%3Dnac%26cc%3DUS%26cn%3DARROW%2FAMERICAS%26lang%3Den%26retfilt%3DY%26retreq%3DY%26srchtxt%3DBAV99%26start%3D0%26limit%3D10&taxonomy=
试试这个:

curl -d "sort1Name=&sort1Order=&start=0&docid=&cat=&filtMultiSelect=&catFiltAddOn=&chkButton=1&search_token=BAV99&limit=9999&requestedURL=http%3A%2F%2Fext.partsearch.arrow.com%2Fnacpartservice%2Fsearch%3Fappid%3Dnac%26cc%3DUS%26cn%3DARROW%2FAMERICAS%26lang%3Den%26retfilt%3DY%26retreq%3DY%26srchtxt%3DBAV99%26start%3D0%26limit%3D10&taxonomy=" http://components.arrow.com/part/search/BAV99
试试这个:

curl -d "sort1Name=&sort1Order=&start=0&docid=&cat=&filtMultiSelect=&catFiltAddOn=&chkButton=1&search_token=BAV99&limit=9999&requestedURL=http%3A%2F%2Fext.partsearch.arrow.com%2Fnacpartservice%2Fsearch%3Fappid%3Dnac%26cc%3DUS%26cn%3DARROW%2FAMERICAS%26lang%3Den%26retfilt%3DY%26retreq%3DY%26srchtxt%3DBAV99%26start%3D0%26limit%3D10&taxonomy=" http://components.arrow.com/part/search/BAV99

目标页面使用表单提供POST数据,服务器使用POST数据标识要返回的记录数、分页的起始偏移量、排序方式等

正如@EvanLarsen在中所指出的,您需要使用
curl-d”“

但是,网站似乎会正确地响应请求,只提供您真正关心的字段

要仅返回第一条记录,请执行以下操作:

curl -d "limit=1" http://components.arrow.com/part/search/BAV99
要仅返回第二条记录,请执行以下操作:

curl -d "limit=1&start=1" http://components.arrow.com/part/search/BAV99
要返回99999条记录(按照您的要求):


如果您想要一个良好的用户界面,以便在web浏览器中更轻松地修改和提交POST数据以及查看结果(而不是使用
curl
),请查看。

您要定位的页面,该页面使用表单提供POST数据,服务器使用该表单确定要返回的记录数、分页使用的起始偏移量,如何分类等等

正如@EvanLarsen在中所指出的,您需要使用
curl-d”“

但是,网站似乎会正确地响应请求,只提供您真正关心的字段

要仅返回第一条记录,请执行以下操作:

curl -d "limit=1" http://components.arrow.com/part/search/BAV99
要仅返回第二条记录,请执行以下操作:

curl -d "limit=1&start=1" http://components.arrow.com/part/search/BAV99
要返回99999条记录(按照您的要求):


如果您想要一个体面的用户界面,以便在web浏览器中更轻松地修改和提交帖子数据以及查看结果(而不是使用
curl
),请查看。

这是通过使用Chrome开发者工具(或Firebug)实现的:


但正如其他人所提到的,服务器正在限制此参数,因此您无法发送
9999

这是通过使用Chrome开发者工具(或Firebug)实现的:

但正如其他人提到的,服务器正在限制此参数,因此您无法发送
9999

curl-d“limit=99999”http://components.arrow.com/part/search/BAV99
也不使用Request-Maker-Chrome-Extension和
limit=99999
将在每页返回10个以上的结果。显然(基于我的尝试和错误)当限制设置为高于4000时,他们会限制结果,并返回“未找到搜索结果”。但是当
limit=4000
或更低时,它会为我返回该类别中的所有143个结果。
curl-d“limit=99999” http://components.arrow.com/part/search/BAV99
也不使用Request Maker Chrome Extension with
limit=99999
会在一页中返回超过10个结果。显然(根据我的尝试和错误),当limit设置为高于4000时,他们会限制结果,并返回“未找到搜索结果”但如果
limit=4000
或更低,它将为我返回该类别中的所有143个结果。