Как я могу очистить этот кадр? - PullRequest
2 голосов
/ 22 августа 2009

Если вы посетите эту ссылку прямо сейчас, вы, вероятно, получите ошибку VBScript.

С другой стороны, если вы сначала перейдете по этой ссылке и , а затем по вышеуказанной ссылке (в том же сеансе), страница откроется.

При настройке этого приложения первая страница должна служить фреймом на второй (главной) странице. Если немного щелкнуть вокруг, вы увидите, как это работает.

Мой вопрос: как мне очистить первую страницу с помощью Python? Я перепробовал все, что мог придумать - urllib, urllib2, механизировать - и все, что я получил, это 500 ошибок или тайм-аутов.

Я подозреваю, что ответы лежат в механизме, но мой механиз-фу недостаточно хорош, чтобы взломать это. Кто-нибудь может помочь?

Ответы [ 2 ]

8 голосов
/ 22 августа 2009

Это всегда сводится к модели запроса / ответа. Вам просто нужно составить серию запросов http, чтобы получить желаемые ответы. В этом случае вам также необходим сервер для обработки каждого запроса как части одного и того же сеанса. Для этого вам необходимо выяснить, как сервер отслеживает сеансы. Это может быть несколько вещей, от файлов cookie до скрытых входных данных, действий форм, публикации данных или строк запроса. Если бы мне пришлось угадывать, я бы положил свои деньги на печенье в этом случае (я не проверял ссылки). Если это так, вам нужно отправить первый запрос, сохранить полученный файл cookie, а затем отправить этот файл cookie вместе со вторым запросом.

Также может быть, что на начальной странице будут кнопки и ссылки, которые ведут на вторую страницу. Эти ссылки будут иметь что-то вроде <A href="http://cad.chp.ca.gov/iiqr.asp?Center=RDCC&LogNumber=0197D0820&t=Traffic%20Hazard&l=3358%20MYRTLE&b=">, где большая часть gobbedlygook генерируется первой страницей.

Часть "Center=RDCC&LogNumber=0197D0820&t=Traffic%20Hazard&l=3358%20MYRTLE&b=" кодирует некоторую информацию о сеансе, которую вы должны получить с первой страницы.

И, конечно, вам может понадобиться и то и другое.

1 голос
/ 22 августа 2009

Вы можете также попробовать BeautifulSoup в дополнение к механизации. Я не уверен, но вы должны быть в состоянии разобрать DOM на странице в рамке.

Я также считаю Tamper Data довольно полезным плагином, когда пишу скребки.

...