Wypelnianie formularza forum IP.Board (WB)

0

Witam serdecznie
Chciałem zrobić program do automatycznego generowania tematów (nie mylić z botem do spamu).
Forum jest oparte na silniku IP.Board.
Korzystam przy tym z webbrowsera ale za nic nie mogę wypełnić formularza tego forum.

Próbowałem tak:

Uses
 MSHTML;
[...]
var
  dokumentwww : IHTMLDocument3;
  elem: IHTMLElement;
  doc : IHTMLDocument3;
begin
  doc:= wb.Document as IHTMLDocument3;

    elem:= doc.getElementsByName('Post').item(0, '') as IHTMLElement;
    if Assigned(elem) then
      (elem as IHTMLInputElement).value:= 'tresc tematu...';

oraz przez fillform

function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
  Result := False;
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
  begin
    Exit;
  end;
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
    begin
      try
        if FormItem.Item(j).Name = FieldName then
        begin
          FormItem.Item(j).Value := Value;
          Result := True;
        end;
      except
        Exit;
      end;
    end;
  end;
end;

if FillForm(WebBrowser, 'Post', 'tresc tematu...') = False then
      ShowMessage('Wystąpił błąd');

Ale za nic nie idzie wypełnić tego formularza.
Proszę zatem Was o pomoc :)

0

Z pobieżnego spojrzeania na Twój kod (nie mam dużego doświadczenia z TWebBrowserem), widzę że dane są najprawdopodobniej wysyłane metodą POST, więc jeżeli strona nie używa JavaScriptu do wysyłania informacji to polecal bym skorzystać z pakietu Indy lub Synapse i pod nimi wysylać prawidłowe dane do wygenerowania posta. Ja zawsze najpierw próbuje logować się czy wysyłać dane THttpSend z pakietu Synapse, bo nie korzystam pod moim XP prawie w ogóle z IE, więc mam statusieńką wersję 6.0, a pod niej to odwiedzanie stron i wysyłanie informacji jest i mało bezpieczne, jak również powolne. O Indy i Synapse znajdziesz mńóstwo informacji w google, dokumentacji oraz przykładach dołączonych do wspomnianych wcześniej pakietów.

0

No ok, poszukam sobie czegoś.
Jednakże ja mam małe doświadczenie z Indy a z WB korzystam od zawsze w takich przypadkach i wolałbym właśnie z jego użyciem to zrobić ale pierwszy raz mi się coś takiego przytrafiło.
Ale dzięki

0

To może ktoś inny coś doradzi. Niektórzy mają problemy z wysyłaniem danych metodą POST, wtedy polecam spróbować pod znienawidzonym tutaj przez większość Synapse. Zresztą pakiety Indy czy Synapse są niezależne od przeglądarki internetowej. Jeżeli chcesz dokładnie wiedzieć co wysyła Twoja prawdziwa przeglądarka polecam analizować pakiety programem WireShark. Jak go używać pokazują video tutoriale na YouTube. Wiesz, używanie TWebBrowswer tam gdzie można zalogować się równie prosto i na pewno szybciej to jak polowanie na muchy z armatą. W sumie można, ale i po co. Wyjątkiem jest tylko mój program do pobierania galerii znajomych z FaceBook'a. Korzysta z Synapse, ale dlugo się loguje, jednak niestety jako nieprawdziwa przeglądarka tak musi być aby pobrał sobie potrzebne do wydobycia danych access tokeny, ale za to jest niezależną aplikacją której nie trzeba instalować czy tam na FaceBooku pozwalać jej na pracę na naszym koncie. Podsumowując polecam alternatywę ;)

0

No, dla mnie Synapse to zupełnie nieznany świat. A zależność od IE nie przeszkadza mi za bardzo

1 użytkowników online, w tym zalogowanych: 0, gości: 1