Найти - Пользователи
Полная версия: Парсинг сайта для чайников.
Начало » Web » Парсинг сайта для чайников.
1
UsCr
Здравствуйте. Что есть для сабжа? Есть автоматические модули?

А вот конкретный вопрос:
есть сайт со списком оборудования, конфигурацией и прочими прелестями. В адресной строке после логина на сайт отображается такой адрес: bla-bla/cgi_bin/pCComp.exe
На самом сайте есть ссылки. После клика по ссылке, открывается другая страничка с другими ссылками. Но в адреснойстроке по прежнему bla-bla/cgi_bin/pCComp.exe, веб-консоль показывает вот что: POST http://portal.arbyte.ru/cgi_bin/pCComp.exe

Внутри странички есть такого вида ссылки: a href=“/cgi_bin/pCComp.exe” onclick=“AdapterForm2.__act.value='ColId.1.2__id.35.wDm.DataSetAdapter2.GetNameActionCL__sp.13.PlatCompsPage__fp.13.PlatCompsPage';AdapterForm2.submit();return false;”

Как со всем этим быть?

Прошу обьяснять наиболее “детским” языком. Я впервые сталкиваюсь с парсингом сайта, а тут сразу такая вот загогулина.


UPD

Я догадался wireshark'ом посмотреть готовый POST. Вот он: __act=NextPage.9.LoginPage__id.33.LoginPage.LoginFormAdapter1.Login__sp.9.LoginPage__fp.9.LoginPage&UserName=username&Password=password&NextPage=ProductsPage

Теперь делаю так:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2


params = "__act=NextPage.9.LoginPage__id.33.LoginPage.\
LoginFormAdapter1.Login__sp.9.LoginPage__fp\
.9.LoginPage&UserName=name&Password=password&NextPage=ProductsPage"

req = urllib2.Request('http://79.143.70.100:80/cgi_bin/pCComp.exe', params)
f = urllib2.urlopen(req)


print req
for i in f:
print i
Получаю ответ:
<urllib2.Request instance at 0xb786692c>
<html><body><h1>Internal Application Error</h1>

<p>'Login__sp' is not a valid integer value

<p><hr width="100%"><i></i></body></html>
Что не так?

И в догонку: как получить и использовать потом куку?
agalen
Похоже, тебе придется самому разбирать поля onlick=… и формировать данные для POST-запросов.

По поводу ошибки - может просто требуется соблюдать определенный порядок вызова?
И еще попробуй заменить LoginFormAdapter1 на LoginFormAdapter.1 (там чередование слов и цифр нарушено).

Чтобы использовать куки надо в urillib2 создать свой opener, чтобы тот включал HTTPCookieProcessor
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB