我想要实现的是从一个通过PHP脚本(动态)生成图像的URL获取(图像的)二进制数据,并使用sqlalchemy将该数据保存到数据库中。当我尝试使用python或ipython解释器实现此操作时,将返回数据,但在脚本中使用相同的代码,数据是空字符串。
>>>import urllib
>>>link = 'http://www.example.com/getImage.php?e=23f4904fhsdajf0xns3erre32q886heipxd8c447gf8gs9b9d'
>>>image = urllib.urlopen(link).read()
>>>image
返回以下二进制数据:
>>>' \ XFF \ XD8 \ XFF \ xe0 \ X00 \ x10JFIF \ X00 \ X01 \ X01 \ X01 \ x00H \ x00H \ X00 \ X00 \ XFF \ XE1 \ X00 \ x18Exif \ x00 \ x00II * \ x00 \ x08 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ xff \ xe1 \ x03)http://ns.adobe.com/xap/1.0/ \ x00 \ xff \ xdb \ x00C \ X00 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X01 \ X02 \ X02 \ X01 \ X01 \ X02 \ X01 \ X01 \ X01 \ X02 \ X02 \ X02 \ X02 \ X02 \ X02 \ X02 \ X02 \ X02 \ X01 \ X02 \ X02 \ X02 \ X02 \ X02 \ X02 \ X02 \ X02 \ X02 \ X02 \ XFF \ XC0 \ X00 \ X0B \ X08 \ X00 \ X16 \ X01,\ X01 \ X01 \ X11 \ X00 \ XFF \ XC4 \ X00 \ X1B \ X00 \ X01 \ X00 \ X03 \ X01 \ X01 \ X01 \ X01 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ X06 \ X07 \ X08 \ X05 \ t \ n \ X03 \ XFF \ XC4 \ X00 $ \ X10 \ X00 \ X02 \ X02 \ X03 \ X01 \ X01 \ X01 \ X00 \ X02 \ X02 \ X03 \ X00 \ X00 \ X00 \ X00 \ X00 \ X05 \ X06 \ X04 \ X07 \ X02 \ X03 \ X08 \ X00 \ X01 \吨\ n \ X14 \ X12 \ X17 \ X13 \ X15 \ X16 \ XFF \ XDA \ X00 \ X08 \ X01 \ X01 \ X00 \ X00 \ X00 \ xfb的\ XF8 \ XF3 \ XCF< \ XF7 $ \ xf9 \ xf0J \ XA0 \ x8d44 \ X1A \ X12 \ XB6 \ XB2 \ XB6 $ \ X89 \ XF6&放大器;#\ xe4a \的x87 \ X04 \ X04 \ x10x {\ X88 \ x974h \ xb9 \ X1D \ XDA \ XE3 \ x8b \ X13 \ X14 | Y \ X1B \ XE4 \ xc9 \ XDF \ XB3 ^ \ x9d \ x1atg \ xb7nx \ XE1 \ x8eY | \ XFC \ XD6 \ xd9 \ X17 \\ X97 @ 7 \ xa8 \ X1F \ n \ XD6 \ XA4 \ XD6 \ x14S" \ xbbB \ xd9X \'!WY \ x17N \ XC1 \ xd0P \ XF0 \ X06 \ XC5 \ XEF \ XDB \ X18 \ xc0Y \ X83%F \ X91 \ x16T} \ xbb4H \ XD1 \' ^ \固定的; 3 \ XD7 \ x9e9} \ xedz \ X16 \ xc3d \ xd7j \&# 39;!\ XC0 * \ XB5 \ XBF%\ xac45 \ XC4 \ x92A]米\ X85 \ XA4 \ x18S \ XEC \ X90 6 \ xa1L \ x9a \ X009)\ XFA \ XA4 \ X18 \ X89版权所有\ xA9 \ XEA \ XD4 \ XAC \ X02 \固定的\ XDB \ X1F ^ \ xcc5 \ X96 \ XB1 \ XC0 \ x8e \ XCB / \ X93 \ X0C \ X0F \ XD3" I \ XEC \ XFE \ XB7 \ XD6 \\ XB0 \ xe5g \ XCE \ XA4 \ X94: \ x9f \ XDA \ xaeq \ x9b \ X88 \ XC6%Q- \ XDC \ XB5 \ XD1 \ XCB< | \ X81 \ X18 \ xe5 \ x99m \ X13 \ x90E \ XB1 \固定的+ \ x13t \ 0 \ XCF \ XEC \ x8cvD \ xc7- \ x1f1 \ XFB \ xf7o \ XCC〜| \ XFB \固定的\ X01 \ XE7 \ XA3 \固定的\ x8d \ x8a \ xa8J \ XAC \ xcfOL \ XCB \ xe9i)K \ XE6 [\ X1C \ [\ X0C \ x8e \ USU \\ X1D $ \ XC3 \ x0b33 \吨\ X89:乙\ X01 \ X80" \ X1C \ xc9Sf \ XCA \ XDD \ xaa4X \ xd1vo \ XDF \ XB3 \ RXE \ X97 \ XC2 \ xcbb \ XAB \ XA0 \ xe9&安培; \ X13 \ X99 \ X97 \ XDB \ x04C
lS\x98Qd\xc8\xe3\xc3\xa2\xb5!5\x19EzY\x938\\\x9d\xba\xb40\x05v\\a\x0cZ\x16Y|\x928\xa8)\xa3\xe6k\xd3..\xfd8H<\xf3\xcf<\xf3\xcf<\xf3\xcf<\xf3\xcf<\xf3\xcf<\xf3\xdf7[\xa2\xf4\xe1\xfe\xe6^\x85\x96\xdf\xd0$\x94;\x0b\xb0\xba\xc6\x9a\xbc6m+\xdb\xcdJ\xa09\xe1\xb2\x89\xe9\xd5Z>\xc3Ka\x0e\x00=5U\xa0ej\x8f\xa0\xcb\xa9\x92G\x10U\xa9gIq\xbb]_\xa1\x92\xd0\xcd\xaag\x01\x97/\xd3\xd7\xde}\xf9
3 \ X97 \ XBD \ xeac \ X81 \ XAE \ X1A \ x0f \ x94 \ xef!\ xf0kn \ x91 \ xb1K \ xcd \ xa69 \ xd2 \ xa5 \ xb5 \ x87] \ xbdOWQ \\ xf1s \ xa0 \ xd8,X \ xd8 \ x1d \ x90 \ xe4 \ x07 \ x1cL \ xb3Be#[!\ x863 \ NI \ XA1 \ x18l \ X156 \ xa5n \西航2 B \ XE6 \ XD2 / 2 \ X03 [\ XDD \ XF0 \ XEB \ XF1 \ X1F \ x8a \ XBF] \ X-AD〜w ^ $ \ X99 ^ \ XF6 \ X174 \ X1E \&#39; S \ XA1 \ XC4 \ XFC \ XFD \ X93 \ xc6IGP,正\ X8F \ XB1 \ XAC \ XBB \ X10 \ XEC \ XAB \ X14 \ x7fE \ x10K \ x11j \ x9f \ XDA \ XDC \ xc8&LT; \ X93 \ x18L \ X16 \ xb3S \ XD7 \ XBA \ X1C \ xedQ \ XD3 \ XAE \ xa00 \ XFA&#34; \ XF0 \ xae9 \ XDC \ x1fM \ xc8 {\ X99 \ xd9 \ XB6 \ X85 \ xa1D1MV \ XB4 $ \ XF3&安培; \ x8a \ x97w \ xe0 \ X13 \ xaaUL \ XB6〜\ XC2 \ x9f \ X0F \ xeaTj \ xdbg \ xe9 \ X12 \ XF6 \ xb9RVfL \ xf9 \ x0e3 \ xbe1 \ r \ X92 \ X1F \ X1C \ X91 \ X80 \ xf3H \ XE3 \ X01 \的Xaa = \ XB7 \ xf2XB \ XF2:C \ XF4 \ X18 \ xb5A \的x87 \ XC5 \ xe9W \ x8a \ X98 ^ \ X18 \ xfde \ XAE \ XBC \ xf32 \ X19 \固定的\ X81 \ X80 \ XB3 \ XB4 \ XFE \ x8b&LT;]#\ x03G \ x9b \ x16v版权所有\ xA9 \ xf3y \ xb0N \ xe5-d \ xc8 \ X02 \ XDE \ XC1 \ X99 \ X15 |%G \ xf9 \ xe8 \ x8d \ xc7 \ n \ XCC \ XB7 \ XFF \ X00 \ X14 \ XBAR \ X90;苏\ 0x7F部分\ XFB \ XAE \ XCF \ xe1n \ XFF \ X00 \ X98 \ X84 \ x8c \ XC5 \ XFB \ xb3m \ X03 [ R3q \ TT版权所有\ xA9 \ X96 \ XB2 \ xe5 \ xa6 \ x85g&安培; Y \的Xaa +]●\ xb5Q- \ xda4w \ xf6e \ x89s \ X01 \ XB4 \ X0B&GT; HC \ x9f \ XDF \ XB8 \的Xaa \ XCD \ XFB \ XDE \ xc8 \ X17!\ XBF \命苦\ XBE?\ XBB \ XF4 = A \ XB7 \ xbbf \ xa5 \ n \ X1E \ xe17 \ XDB \ XB7 \ xe5y!J7)\ xf5Z \ XDF \ X19 \ XB7 \ x1aj〜\ X1B \ xa6 \ x9a \ x81V \ XCF \ xe8e \ XCEB&#34;!4 \ xa8 \ XB8 \ X0C \ x8dP \ xb0F \ xddgX \ X98 \ X92 \ XFA \ XDF \ X89 \ r \ X83 \ x91g% \ xfeq \ xb0Y \ xf9 \ XD2 / \ XEA \ x9c \ XD0 \ xea7 \ XDF \ XE6 [\ xb3dn \ X88 \ X1B \ xd3L \ X16 \ XA 9 \ X15 \ XF4 \ XEE \ XC1 \ xa8 \ X99 \ XBB,UB \ x9bi @ \ xddh \ XB7 \ X0F \ XDD \ XCF \ XC1 \ X98 \ XB5 \ XBB \ X84 \ X0B \ xa2z \ X11 \ xe8 \ x93w \ x07B \ X1F / \ X19,q $ \ XE1 \ x0e \ x8d \ xa9z \ n \ XFC \ X1B \ xc96 \ X85 \ x97T \ XF6 \ xb9 \ X91版权所有\ xA9] \ X03 \ xdfoly \ XC0 [\ XEA \ X11 \ XB6 \ xeae + \ XBB \ xf9&安培;〜I \ xd9 \ x95pi \ X83 + \ x8cu \ xb5i \ XC2 / \ X11 \ xd7m \ XEC \ X08 \ XA0 \ xe2c \ XB6 ^ \ X85 \ XDA \ X929 \ XE4 \ XB8 \ x7f3U \ x178u \ xc8 \ XFE \ XEF \ XD4 [T \ XFB \ X81%版权所有\ xA9 \ XD2 \ XFB \ xddY \ XF0 \ X11 @&LT; \ xe9e3 \ x88m {&#34; \ xc5eQ \ xfd3 \ XD7 \ X15 \ XAD \ xebu \ XD8 \ xb9 \ XCC \ x1aOi \ X06 \ xdb2 \ XB7 \ XFC \ XA7 \ X95]4\xff\x00\xf9H5\x00\xad\x8e\xcd\xb8fq%\xed\xcf\xfeJ\xc6\xc4\xe6.\x8d\xe8\x1dCQi\xfa\xbc\x81\n\xd4\xd3gJ\xe3\xcaV\xfdW\xd74\xc4\x0eG\xadBnkZ\x1f\xf9\xfd\xd1t\xad\x02\xa9sc\xf0\x1a\xadMD\x912l\xcf\xd0*\x1fZ\x8cZA\x07\xee\xca) s4\xb1\x8b\xd3+/\xf6\xac\x1e\xff\x00\xe5\xc1nn\xbd\x8f\x06\xcas\xfd6\xed\xf4k0\\\xb6K\xc27\x16\xb6\xf3:\xef+w\xcb7+(\xa5\xc2\xdb7\x1a\xd8\xf9H)\tT\xf1\x12p\x17\xf1\xdcj+\x9a\xa9\xc9n\xda\xb5\x98\x82\x0b=T}\x01N\xf7\x02\xdaG5;\x1ep\xfd\x19"\xfa\x1f\x9e\xff\x00\x8f%\x88\xe0\x1e\xc0\xb6z\x99\x8a\x0c\xbb\xb6\xef\xeb\xc6J\xd3\xf4\xe0E\x80\x96\xd4{tS\x1b\x03s
\ X15 \ XAD \ XCF + EB \固定的\ X82 \ X95 \ x12fm \ XE4 \的x87 \ N / Y \ XCD \ XF5 \ XBC \ X03] \ XE3 \ x0e \ XBB \ xe8 \ XCC \ XD3 \ X85〜\ X8F \ x8cg \ XB3&安培;?\ XFF \ x00H2 \ XDC \ XB8 \ XEF \ XA7 \ XBC,\的x87 \ XE4 \ XEE \ xe8 \ X10 \ X1E \ xa6\xe7 \xe1,Wu\x91J!n\xac\x06\xcf\xbb"/\xc8\xa5\x15\xd5\x12\xa7\x92\x81\xaa\x1a\xe9\x06I9\xad|\x89\xb9"cn*s\xe8\x8a\xcc\x8aG^\'\xa2\x0e\xfdC\xee\xabK\xabr\xa4k\xce\x87X\xb6\x8a\xf2]\xd9\xdd\x9f\xa6\xec\xd5Izy\x9a\xa1\x0b\xa1\xb1\x9b\x026
\ x9e} 6wE {&#34 c取代;!\ x8a \ xe9 \ XDA \ XCF \ x9a \ XF5 \ x83e \ X19 \ 0x7F部分%\ x9b \ XFF \ x00m \ XFD \ xc5_ \ X96 \ XF6 \ XAF \ x18s \ xa6&LT;?\ XC5 / \ X1E ^ \ XFF \ x00Y \固定的\ xe9 \ XCD \ XDD \ X17 \ x9d \ xe9 \ x8d \ xe3 {\ xe2koH \ xe7 \ xccZp9 \ x8b \ x0et \ xc7 \ xced \ xcd \ x13 \ x0b \ x8b \ x1f \ xfal \ xec7 \ x85 \ x89 \ x96m \ xd8 \ x9c \ xcf \ xed} W \ XD1 \ XBD \ xd5f \ xd9uT \ x9e \ xa3t \固定的\ X95 \ XE6 \ 86 \ XFE \ xc9 \ xa8 \的Xaa \ XBE \ 86 \ x8dS \ XDD \ x9d \ TZS \ xe3i \ XCD _ \ x82u \ XD5 \ x93l \ x1cE \ XC2 \ xaeg \ X1E \ R:\ XBB \ X91 \ xfaJ \ XA3 \ xb4v- \ XC0〜\ XC3 \ XD7版权所有\ xA9 \ xbeQ%\ XC1 \ XC5 \ xa3O8b \ X11 \ x0fh \ XB8 $ \ X85 \ XB4 [\ X85 \ XF8 \ XB8 \ X-AD \ xfb的\ X-AD \ xcbM \ xecO \ x93y \ XD0 \ X85 \ XD5 \ xa6 \ XC5 \ x1aH5 \ X83 \的Xaa \ XDA \ x9bO \ xa7I \ XB1 \ XF5 \ XBD \ x873 \ x17D \ xc1NX \ XB8 \ xec3 \ XF0 \ xa4izt \ xc9 \ XD1; \ XE6 \ XFD [\ xf5k \ XDB \ x86X | \ XD6&GT; Y \ XE7 \ x9ey \ XE7 \ x9ey \ XE7 \ x9ey \ xeey \ x9ey \ xe7 \ x9ey \ xea \ x9ey \ xe7 \ x9e \ xaa \ xeazV \ xb8 \ xa4E \ xb4 \ x89 \ xaeB \ x91 \ x19 \ xa9 \ xe1 \ xe9 \ x8e \ xcbq u \ xb1 \ XC1 \ xe9 \ x8d \ XA1 \ XE1 \ XAB(\ X98 \ x17m \ XCB \ X0F \ x99g \ XF3 / \ XBF&GT;} \ xf4yw \ x8ay \ xa5V \ XFB \ x9f \ XD3 \ X00 \ XEB \ xe9 \ xf1m \ xd9 \ XC4 \ XDA \ X0F \ XEA \ x9f&#34; \ XC2 \ XB3 \ X89#\ x82ky \ X13 \ X14 \ X0B \ XD3 \ xcau:Q \ xcfrj- \ x84t,L&#34; \ x9ba \ X0C \ X02 \ X01 \ XB2 \ xfa7o \ xd6F | \ x9ceI \ xf9 \ xb7Ty \ XE7 \ x9ey \ XE7 \ x9ey \ XE7 \ x9ey \ XE7 \ x9ey \ XE7 \ x9ey \ XE7 \ x9ey \ XEF \ XFF \ xd9&#39; < / p>
def get_image(link):
print link #Debug: Check if link has been passed
image = urllib.urlopen(link).read()
print type(image), image
return image
第一个print语句返回:
http://www.example.com/getImage.php?e=23f4904fhsdajf0xns3erre32q886heipxd8c447gf8gs9b9d
和第二个:
输入,
为什么相同的代码会产生不同的结果?任何人都可以在这里想到可能的原因吗?
答案 0 :(得分:1)
虽然我不知道为什么在从脚本运行到从解释器运行时会得到不同的结果,但我首先要做的是抛弃urrlib以支持Requests库:http://docs.python-requests.org/en/latest/user/quickstart/#response-content我已经从脚本应用程序中获取了很多不同的内容,到目前为止从未出现过问题。