Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从url提取javascript信息_Javascript_Python_Urllib2_Urlopen - Fatal编程技术网

使用python从url提取javascript信息

使用python从url提取javascript信息,javascript,python,urllib2,urlopen,Javascript,Python,Urllib2,Urlopen,我有一个链接到javascript文件的URL,例如http://something.com/../x.js。我需要从x.js 是否可以使用python实现这一点? 目前我使用的是urllib2.urlopen(),但当我使用.read()时,我得到了这个可爱的混乱: U�(��%y�d�<�!���P��&Y��iX���O�������<Xy�CH{]^7e� �K�\�͌h��,U(9\ni�A ��2dp}�9���t�<M�M,u�N��h�bʄ�uV�\��

我有一个链接到javascript文件的URL,例如
http://something.com/../x.js
。我需要从
x.js

是否可以使用python实现这一点? 目前我使用的是
urllib2.urlopen()
,但当我使用
.read()
时,我得到了这个可爱的混乱:

U�(��%y�d�<�!���P��&Y��iX���O�������<Xy�CH{]^7e� �K�\�͌h��,U(9\ni�A ��2dp}�9���t�<M�M,u�N��h�bʄ�uV�\��0�A1��Q�.)�A��XNc��$"SkD�y����5�)�B�t9�):�^6��`(���d��hH=9D5wwK'�E�j%�]U~��0U�~ʻ��)�pj��aA�?;n�px`�r�/8<?;�t��z�{��n��W
�s�������h8����i�߸#}���}&�M�K�y��h�z�6,�Xc��!:'D|�s��,�g$�Y��H�T^#`r����f����tB��7��X�%�.X\��M9V[Z�Yl�LZ[ZM�F���`D�=ޘ5�A�0�){Ce�L*�k���������5����"�A��Y�}���t��X�(�O�̓�[�{���T�V��?:�s�i���ڶ�8m��6b��d$��j}��u�D&RL�[0>~x�jچ7�
U�(��%Y�D� 
.read()
应该提供与“查看源代码”中相同的内容浏览器的窗口,因此出现问题。看起来HTTP响应可能是gzip,但是
urllib2
也不会请求gzip数据,因此如果这是问题所在,服务器可能配置错误,但我假设这超出了您的控制范围

我建议改为使用
请求
,因此它应该可以为您解决这个问题

import requests
r = requests.get('https://something.com/x.js')
r.text   # unparsed json output, shouldn't be garbled
r.json() # parses json and returns a dictionary
一般来说,
请求
urllib2
更易于使用,因此我建议在任何地方都使用它,除非您必须严格遵守标准库。

.read()
应该提供与您在“查看源代码”中看到的内容相同的内容浏览器的窗口,因此出现问题。看起来HTTP响应可能是gzip,但是
urllib2
也不会请求gzip数据,因此如果这是问题所在,服务器可能配置错误,但我假设这超出了您的控制范围

我建议改为使用
请求
,因此它应该可以为您解决这个问题

import requests
r = requests.get('https://something.com/x.js')
r.text   # unparsed json output, shouldn't be garbled
r.json() # parses json and returns a dictionary

一般来说,
请求
urllib2
更容易使用,所以我建议在任何地方都使用它,除非你绝对必须遵守标准库。

尝试在web浏览器中打开js文件,看看它是否确实是一个js文件它看起来确实像一个,它有一个东西,一个json变量,里面有很多东西它。尝试在web浏览器中打开js文件,看看它是否确实是一个js文件。它确实看起来像一个js文件,它有一个东西,一个json变量,里面有很多东西。因此它几乎就在那里。r.text获取字符串,但r.json()失败,出现“ValueError:无法解码json对象”和r.text.json()“AttributeError:”unicode“对象没有属性”“json”“。您有可能共享实际url-这将使故障排除更加容易!您的url可能会返回类似JavaScript的
var data={foo:”bar}
而不是原始的JSON。在这种情况下,在使用
JSON.loads
解析JSON之前,您需要进行一些字符串操作以获取JSON。如果JSON对象是
{}的第一次使用,那么这可以像
s=r.text[s.find(“{”):s.find(“})+1]一样简单
在文档中,但它可能要复杂得多。JSON也比实际的JavaScript对象表示法稍微严格一些-例如,如果原始JavaScript使用
而不是
,您将遇到问题。因此它几乎就在那里。r.text获得字符串,但r.JSON()“ValueError:无法解码JSON对象”失败,r.text.JSON()使用“AttributeError:”unicode“对象没有属性“JSON”失败。如果您可以共享实际url,这将使故障排除更加容易!您的url可能会返回类似JavaScript的
var data={foo:“bar”}
而不是原始的JSON。在这种情况下,在使用
JSON.loads
解析JSON之前,您需要进行一些字符串操作以获取JSON。如果JSON对象是
{}的第一次使用,那么这可以像
s=r.text[s.find(“{”):s.find(“})+1]一样简单
在文档中,但它可能要复杂得多。JSON也比实际的JavaScript对象表示法稍微严格一些-例如,如果原始JavaScript使用
'
而不是
,您将遇到问题
。抱歉,但没有此获取我'ValueError:无法解码JSON对象'抱歉,但没有此获取我'ValueError:无法解码JSON对象'