Search code examples
pythoncaptchamechanize

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?


Solution

  • 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.