Используйте cURL или wget с http POST для получения результатов поиска после первой страницы - PullRequest
1 голос
/ 15 апреля 2011

РЕДАКТИРОВАТЬ: У меня есть гораздо более конкретное представление о том, что я сейчас ищу, поэтому я переписываю весь вопрос.

Моя общая цель - получить результаты поиска после первой страницы (из скрипта) на веб-странице. http://www.ncbi.nlm.nih.gov/images. Используя расширение Firefox "Tamper Data", я проверил запросы, отправленные моим браузером. и обнаружил, что я могу изменить запрос HTTP POST, чтобы перейти на любую страницу результатов.

Теперь я хотел бы сделать это в сценарии. Я пробовал оба

wget --post-data 'var1=foo&var2=bar&var3=...' http://www.ncbi.nlm.nih.gov/images

и

cURL --data 'var1=foo&var2=bar&var3=...' http://www.ncbi.nlm.nih.gov/images

и я попытался сделать первоначальный запрос на http://www.ncbi.nlm.nih.gov/images?term=INSERTSEARCHTERMHERE и сохранить cookie, а затем загрузить cookie при следующем запросе, на этот раз с данными POST, указывающими номер страницы. Не работает В любое время, когда я запрашиваю первый URL-адрес, я получаю домашнюю страницу для поиска изображений или страницу с заголовком «Изображения - обнаружена ошибка» без результатов поиска. Если я запрашиваю второй URL-адрес (заменив INSERTSEARCHTERMHERE моим фактическим поисковым термином), я всегда получаю первую страницу результатов, даже если я отправляю данные POST, включая переменную, запрашивая другую страницу. Кажется, есть два - может быть, три? - переменные, обозначающие номер страницы:

EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Entrez_Pager.cPage=14
EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Entrez_Pager.CurrPage=14

и в Tamper Data это всегда текущая страница (та, на которой я был, когда делал запрос на новую страницу):

EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Entrez_Pager.cPage=1

(Да, в данных POST есть две переменные с одним и тем же именем - я не знаю, что это такое ... ??)

Итак, как я могу использовать cURL или wget в скрипте, чтобы попасть на все страницы результатов поиска? Спасибо за вашу помощь! (и спасибо комментаторам за помощь в прояснении вопроса!)

Дополнительная информация: Существует множество полей POST, и я отправляю все из них. Я скопировал это из того, что записали данные тампера:

EntrezSystem2.PEntrez.ImagesDb.Images_SearchBar.SearchResourceList = & изображения EntrezSystem2.PEntrez.ImagesDb.Images_SearchBar.Term = препарат & EntrezSystem2.PEntrez.ImagesDb.Images_SearchBar.CurrDb = & изображения EntrezSystem2.PEntrez.ImagesDb.Entrez_PageController.PreviousPageName = Результаты & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel .Images_DisplayBar.sPresentation = docsum & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Images_DisplayBar.sPageSize = 20 & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Images_DisplayBar.FileFormat = docsum & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Images_DisplayBar.LastPresentation = docsum & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Images_DisplayBar .Presentation = docsum & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Images_DisplayBar.PageSize = 20 & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Images_DisplayBar.LastPageSize = 20 & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Images_DisplayBar.Format = & EntrezSystem2.PEntrez.ImagesDb.Images_ ResultsPanel.Images_DisplayBar.LastFormat = & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Entrez_Pager.cPage = 14 & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Entrez_Pager.CurrPage = 14 & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Entrez_ResultsController.ResultCount = 38231 & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel. Entrez_ResultsController.RunLastQuery = & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Entrez_Pager.cPage = 1 & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Images_DisplayBar.sPresentation2 = docsum & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Images_DisplayBar.sPageSize2 = 20 & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Entrez_MultiItemSupl. Discovery_SearchDetails.SearchDetailsTerm = препарат% 5BAll + Поля% 5D & EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.HistoryDisplay.Cmd = PageChanged & EntrezSystem2.PEntrez.DbConnector.Db = изображения и EntrezSystem2.PEntrez.DbConnector.LastDb = изображения и EntrezSystem2.PEntrez.DbConnector.Term = наркотиков и EntrezSystem2.PEntrez. DBC onnector.LastTabCmd = & EntrezSystem2.PEntrez.DbConnector.LastQueryKey = 1 & EntrezSystem2.PEntrez.DbConnector.IdsFromResult = & EntrezSystem2.PEntrez.DbConnector.LastIdsFromResult = & EntrezSystem2.PEntrez.DbConnector.LinkName = & EntrezSystem2.PEntrez.DbConnector.LinkReadableName = & EntrezSystem2.PEntrez.DbConnector. LinkSrcDb = & EntrezSystem2.PEntrez.DbConnector.Cmd = PageChanged & EntrezSystem2.PEntrez.DbConnector.TabCmd = & EntrezSystem2.PEntrez.DbConnector.QueryKey = & р% 24a = EntrezSystem2.PEntrez.ImagesDb.Images_ResultsPanel.Entrez_Pager.cPage & р% = 24л EntrezSystem2 & р% = 24st изображения

...