0
특정 페이지에 액세스하고 양식 데이터를 입력 한 다음 제출시 리디렉션되는 페이지를 인쇄하는 간단한 웹 봇을 만들려고합니다. 그러나 내 resp.read() 호출은 초기 양식 제출 페이지를 계속 인쇄합니다. 나는 HTML 구문 분석에 대한 LXML을 사용하고Python Web Bot (urllib)
<html>
<body>
<P>Welcome <BR><P>Please answer the question <BR><P>98270+88340= ?
<form name="loginform" method="post" action="vote.php">
<input name="sum" type="text" id="sum" />
<input type="submit" name="Submit" value="POST Answer">
</form></body>
import urllib
import urllib2
import lxml.html as lh
#parse the operands
url='hidden'
parr=lh.parse(url).xpath('//p/text()')
elem=parr[2]
op1=int(elem[0:5])
op2=int(elem[6:11])
sum=op1+op2
print sum
sum=str(sum)
#request values
values = {
"sum": sum,
"Submit": "POST Answer"
}
#encode for transmssion
data = urllib.urlencode(values)
request = urllib2.Request(url, data)
resp=urllib2.urlopen(request)
#receive response
print resp.read()
resp.close()
:
다음은 페이지와 내 코드입니다. 올바른 합계를 반환합니다.
[mechanize module] (http://wwwsearch.sourceforge.net/mechanize/)에서 훨씬 쉽게 확인할 수 있습니다. – samplebias
제안 해 주셔서 감사합니다. 내가 기계화 작업을하고있다 – Leif
당신은 이것을 취해야한다 : http://stackoverflow.com/revisions/801745a8-0bc0-4c9b-be05-595283e5be39/view-source 그리고 그것을 당신 자신의 질문에 대한 실제 답변으로 만든다 - 편집하지 마라. 귀하의 질문에, 그것은 다른 사람들이 볼 수있어 유용합니다! –