python urlopen.read()读取网页不完整

Loong213213 2018-07-12 08:26:56
我想要从‘https://cbdb.fas.harvard.edu/cbdbapi/person.php?name=王安石&o=json’读取信息,正常是可以浏览的,getcode返回的是200。但是urlopen.read()读取的就不完整。
我的代码如下
import urllib
req = urllib.urlopen('https://cbdb.fas.harvard.edu/cbdbapi/person.php?name=王安石&o=json').read()
print req
...全文
1277 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Loong213213 2018-07-17
  • 打赏
  • 举报
回复
引用 3 楼 qq_19339041 的回复:
代码如下:使用urllib2 urllib json模块完成输出json内容,请求是get请求
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
import urllib
import json

word = {
'name':'王安石',
'o':'json'
}

headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}

word = urllib.urlencode(word)
url = 'https://cbdb.fas.harvard.edu/cbdbapi/person.php?' + word
request = urllib2.Request(url, headers=headers)
response = urllib2.urlopen(request)
data = json.loads(response.read())
data = json.dumps(data,ensure_ascii=False)
# f = open('3.json','w')
# f.write(data.encode('utf-8'))
print(data.encode('gbk'))


图片显示结果如下:




请问name='王安石'和name=raw_input()这两种给name赋值的方式有什么不一样,怎么样让后一个的结果和前一个相同?
Loong213213 2018-07-14
  • 打赏
  • 举报
回复
引用 3 楼 qq_19339041 的回复:
代码如下:使用urllib2 urllib json模块完成输出json内容,请求是get请求
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
import urllib
import json

word = {
'name':'王安石',
'o':'json'
}

headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}

word = urllib.urlencode(word)
url = 'https://cbdb.fas.harvard.edu/cbdbapi/person.php?' + word
request = urllib2.Request(url, headers=headers)
response = urllib2.urlopen(request)
data = json.loads(response.read())
data = json.dumps(data,ensure_ascii=False)
# f = open('3.json','w')
# f.write(data.encode('utf-8'))
print(data.encode('gbk'))


图片显示结果如下:




可以了。谢谢
silence cc 2018-07-13
  • 打赏
  • 举报
回复
代码如下:使用urllib2 urllib json模块完成输出json内容,请求是get请求
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
import urllib
import json

word = {
'name':'王安石',
'o':'json'
}

headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}

word = urllib.urlencode(word)
url = 'https://cbdb.fas.harvard.edu/cbdbapi/person.php?' + word
request = urllib2.Request(url, headers=headers)
response = urllib2.urlopen(request)
data = json.loads(response.read())
data = json.dumps(data,ensure_ascii=False)
# f = open('3.json','w')
# f.write(data.encode('utf-8'))
print(data.encode('gbk'))


图片显示结果如下:



oyljerry 2018-07-13
  • 打赏
  • 举报
回复
引用 2 楼 u014494545 的回复:
[quote=引用 1 楼 oyljerry 的回复:]
页面可能ajax异步返回结果

应该不是吧,那个网页就是一个json文件,一眼望到头。[/quote]
那就是你的编码等处理可能有问题
Loong213213 2018-07-12
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
页面可能ajax异步返回结果

应该不是吧,那个网页就是一个json文件,一眼望到头。
oyljerry 2018-07-12
  • 打赏
  • 举报
回复
页面可能ajax异步返回结果

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧