Держите отвратительный, кривой, но работающий код на python:
from selenium import webdriver
import time
browser = webdriver.Firefox()
url='http://vk.com/go_in_zp?z=photo-50824015_344878304%2Falbum-50824015_00%2Frev'
browser.get(url)
time.sleep(5) # this is bad
img=browser.find_element_by_xpath('//a[@id="pv_photo"]/img')
print img.get_attribute('src')
browser.quit()
вывод:
http://cs624016.vk.me/v624016533/a226/owG51bJm59o.jpg
Как этот код можно изменить:
1) строку time.sleep(5) заменить на проверку нахождения элемента (ждем секунду, проверяем наличие элемента, если его нет, увеличиваем счетчик и продолжаем; при достижении счетчиком максимального значения - таймаут)
2) заменить selenium на phantom.js (чтобы окно фаерфокса не появлялось)
3) понять, что происходит при загрузке страницы браузером и имитировать это поведение при помощи requests.
Третий путь, на мой взгляд, самый трудозатратный и самый многообещающий (в смысле скорости решения).
UPD:
решение при помощи requests:
import requests
from lxml.html import fromstring
url='http://vk.com/go_in_zp?z=photo-50824015_344878304%2Falbum-50824015_00%2Frev'
search_string=url[url.find('photo-')+len('photo-'):url.find('%2F')]
r=requests.get(url)
doc=fromstring(r.text)
xpath='//a[contains(@onclick, "%s")]/img' % search_string
print doc.xpath(xpath)[0].attrib['src']