Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get generated captcha image using mechanize

I'm trying to use python and mechanize to send sms from my mobile provider website.
The problem is that form has a captcha image. Using mechanize I can get the link to the image, but it's different all the time I access that link.
Is there any way to get exact picture from mechanize?

like image 498
mindmaster Avatar asked Apr 11 '11 21:04

mindmaster


1 Answers

This is a rough example of how to get the image, note that mechanize uses cookies so any cookies received will be sent to the server with the request for the image (this is probably what you want).

br = mechanize.Browser()
response = br.open('http://example.com')
soup = BeautifulSoup(response.get_data())
img = soup.find('img', id='id_of_image')
image_response = br.open_novisit(img['src'])
image = image_response.read()

id='id_of_image' is an example, BeautifulSoup provides many ways to find the tag you're looking for (see the BeautifulSoup docs). image_response is a file-like object.

like image 145
cerberos Avatar answered Oct 24 '22 01:10

cerberos