제출 버튼이 1 개 이상인 양식을 제출하는 방법. 웹 사이트로 게시물을 보냅니다. (파이썬)

StackOverflow https://stackoverflow.com/questions/1830413

문제

사용하는 스크립트를 만들고 있습니다 파이썬 기계화 웹 사이트에 로그인하여 양식을 제출할 수 있습니다. 그러나이 양식에는 3 개의 제출 버튼 (미리보기, 게시 및 취소)이 있습니다. 나는 단 하나의 버튼 만 사용하는 데 익숙하다 ...

이것은 형식입니다.

<TextControl(subject=Is this good for the holidays? Anyone know about the new tech?)>
  <IgnoreControl(threads=<None>)>
  <TextareaControl(message=Im new to technology stocks.)>
  <SelectControl(identity=[*annamae41g])>
  <RadioControl(E=[5, 4, *3, 2, 1, 0])>
  <SubmitControl(SubmitPreview=Preview Message) (readonly)>
  <SubmitControl(SubmitPost=Post Message) (readonly)>
  <SubmitControl(SubmitCancel=Cancel) (readonly)>
  <HiddenControl(action_btn=) (readonly)>
  <HiddenControl(_charset_=) (readonly)>
  <HiddenControl(.crumb=4DxnFEwMIGG) (readonly)>
  <HiddenControl(r=/Stocks_(A_to_Z)/Stocks_G) (readonly)>
  <HiddenControl(bn=25263) (readonly)>
  <HiddenControl(<None>=annamae41g) (readonly)>>

그리고 이것은 내 코드입니다.

br.open(newtopic_url)
br.select_form(name="postmsg")
br.form['subject'] = "Is this good for the holidays? Anyone know about the new tech?"
br.form['message'] = "Im new to technology stocks."
br.form['E'] = ['3']
br.form['identity'] = ['annamae41g']
print br.form
br.submit()

이 스크립트를 실행하면 작동하지 않습니다. 아무 반응이 없습니다. 양식에 3 개의 제출 버튼이 있기 때문에 가정합니다. 아니면 또 다른 문제입니까?

도움이 되었습니까?

해결책 2

문제 해결됨.

파이썬 기계화를 사용하지 마십시오. 다른 게시물 데이터를 보낼 수는 없습니다.

어떤 이유로, 현재 문제에있는 게시물 데이터만으로는 충분하지 않습니다. 서버로 전송 해야하는 다른 것들이 있습니다.

따라서 모든 데이터를 통해 일반 오프너/쿠키 자르 메소드를 사용해야합니다. FireBug (인터넷을보고)에서 추가 데이터 (주제, 메시지, E, ID)를 얻었습니다.

다른 팁

나는 당신과 같은 문제가있었습니다.

두 개의 제출 버튼이있는 양식은 먼저 미리보기, 두 번째는 제출되었습니다.

처음에는 Mechanize가 첫 번째 버튼 만 사용했으며 사용하는 서버 답변을 볼 수있었습니다.

response = browser.submit()
print response.read()

제출 버튼 이름을 Mechanize 제출 기능에 매개 변수로 넣었습니다.

response = browser.submit("submit")

테스트하십시오. 그것은 당신에게도 효과가 있어야합니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top