用python爬猫眼电影,代码和老师讲的一样的,但是出现了一些问题:
# -*- coding: utf-8 -*-
from urllib import request
import json
def get_data(url):
headers = {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'
}
req = request.Request(url, headers=headers)
response = request.urlopen(req)
if response.getcode() == 200:
print(response.read())
return response.read()
def parse_data(html):
data = json.loads(html)['cmts']
print(data)
if __name__ == '__main__':
url = 'http://m.maoyan.com/mmdb/comments/movie/1203084.json?_v_=yes&offset=15&startTime=2018-09-01%2011%3A10%3A00'
parse_data(get_data(url))
报错如下:
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
get_data函数应该返回字符串。json.loads也是处理字符串的而不是bytes类型。
returnresponse.read().decode('utf-8')
fromurllibimportrequest
importjson
defget_data(url):
headers={
'User-Agent':'Mozilla/5.0(iPhone;CPUiPhoneOS9_1likeMacOSX)AppleWebKit/601.1.46(KHTML,likeGecko)Version/9.0Mobile/13B143Safari/601.1'
}
req=request.Request(url,headers=headers)
response=request.urlopen(req)
ifresponse.getcode()==200:
returnresponse.read()
defparse_data(html):
data=json.loads(html.decode())['cmts']
print(data)
ifname=='__main__':
url='http://m.maoyan.com/mmdb/comments/movie/1203084.json?_v_=yes&offset=15&startTime=2018-09-01%2011%3A10%3A00'
parse_data(get_data(url))
我把你的代码修改了下,去掉了print(response.read())这行,html换成了html.decode()可以完成,我用的python3,因为python2的urllib模块中好像不能导入request