Обратный инжиниринг: результаты на странице на arrow.com - PullRequest
0 голосов
/ 19 июля 2011

Я пытаюсь увеличить результаты на странице, например, когда вы открываете: http://components.arrow.com/part/search/BAV99

На веб-сайте вы можете выбрать вариант отображения 10, 25, 50 или 100, нажав на ссылку 50.Теперь у меня вопрос, как бы я отобразил 99999 результатов с помощью curl, например.

Ответы [ 4 ]

2 голосов
/ 22 июля 2011

Я использовал Fiddler2 для создания следующего HTTP-запроса, который выглядит так, как будто он возвращает все 143 соответствующих элемента на одной странице.Я сделал это, просмотрев HTTP-запрос, который был отправлен, когда я выбрал «100 Results» из выпадающего списка.Затем я скопировал необработанный запрос, вставил его в RequestBuilder Fiddler2, изменил 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=
1 голос
/ 22 июля 2011

целевая страница, http://components.arrow.com/part/search/BAV99, использует форму для предоставления POST-данных, которые сервер использует для определения количества возвращаемых записей, какое начальное смещение использовать для разбивки на страницы, как оно должно быть отсортировано и т. Д.

Как @ EvanLarsen отметил в его ответ , вам нужно использовать curl -d "<POST_DATA>" <URL>.

Однако, похоже, сайт правильно ответит на запрос только теми полями, которые вам действительно нужны.

Чтобы вернуть только первую запись:

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 записей (как вы просили):

curl -d "limit=99999" http://components.arrow.com/part/search/BAV99

Если вы хотите, чтобы приличный пользовательский интерфейс облегчал изменение и отправку POST-данных и просмотр результатов в веб-браузере (вместо использования curl), ознакомьтесь с Request Maker Chrome Extension .

1 голос
/ 22 июля 2011

Попробуйте это:

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
0 голосов
/ 14 июня 2012

Это достигается с помощью инструментов разработчика Chrome (или Firebug):

enter image description here

Но, как уже упоминалось, сервер ограничивает этот параметр, поэтому вы не можете отправить 9999

...