鱼C论坛

 找回密码
 立即注册
查看: 2480|回复: 8

[已解决]初学爬虫小程序

[复制链接]
发表于 2022-8-19 00:08:22 | 显示全部楼层 |阅读模式
5鱼币
屏幕截图 2022-08-19 000446.png
屏幕截图 2022-08-19 000412.png
为什么用json()输出不行
用text可以,
应该怎么解决
最佳答案
2022-8-19 00:08:23
可以用resp.content.decode()   json格式和xml格式都能返回   图片音乐等二进制格式就用resp.content
text有时候还会牵扯到编解码的问题

最佳答案

查看完整内容

可以用resp.content.decode() json格式和xml格式都能返回 图片音乐等二进制格式就用resp.content text有时候还会牵扯到编解码的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-19 00:08:23 | 显示全部楼层    本楼为最佳答案   
可以用resp.content.decode()   json格式和xml格式都能返回   图片音乐等二进制格式就用resp.content
text有时候还会牵扯到编解码的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-19 06:48:30 From FishC Mobile | 显示全部楼层
百度翻译挺难的,建议有道尝试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-19 07:34:18 | 显示全部楼层
json()的前提是网站返回的是json的数据,从text看出,它返回的是html,所以用json加载报错,说第1行第1列的字符异常。
你的找个返回json格式的网页试试。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
python爱好者. + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-25 12:23:58 From FishC Mobile | 显示全部楼层
这和你访问的网站有关,html是text格式,网站有.json是json暑假
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-25 15:13:15 | 显示全部楼层
学习终。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-30 11:37:19 | 显示全部楼层
求助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-31 15:33:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-3 12:43:45 | 显示全部楼层
本帖最后由 临时号 于 2022-9-3 12:56 编辑
  1. import re
  2. import requests

  3. def n(r, o):
  4.     t = 0
  5.     while t < len(o) - 2:
  6.         a = o[t + 2]
  7.         if a >= "a":
  8.             a = ord(a[0]) - 87
  9.         else:
  10.             a = int(a)
  11.         if "+" == o[t + 1]:
  12.             a = r >> a
  13.         else:
  14.             a = r << a
  15.         if "+" == o[t]:
  16.             r = r + a & 4294967295
  17.         else:
  18.             r = r ^ a
  19.         t += 3
  20.     return r
  21. def a(r):
  22.     if type(r) == list:
  23.         o = 0
  24.         t = list(len(r))
  25.         while o < len(r):
  26.             t[o] = r[o]
  27.             o += 1
  28.         return t
  29.     return r
  30. def e(r):
  31.     global i
  32.     o = re.findall("[\uD800-\uDBFF][\uDC00-\uDFFF]",r)
  33.     if o == []:
  34.         t = len(r)
  35.         if t > 30:
  36.             r = r[0:10] + r[t // 2 - 5:t // 2 - 5 + 10] + r[-10:]
  37.     else:
  38.         e = re.split("[\uD800-\uDBFF][\uDC00-\uDFFF]",r)
  39.         C = 0
  40.         h = len(e)
  41.         f = []
  42.         while h > C:
  43.             "" != e[C] and f.extend(a(e[C].split("")))
  44.             C != h - 1 and f.append(o[C])
  45.             C += 1
  46.         g = len(f)
  47.         if g > 30:
  48.             r = "".join(f[0:10]) + "".join(f[g // 2 - 5:g // 2 + 5]) + "".join(f[-10:])
  49.     u = None
  50.     l = chr(103) + chr(116) + chr(107)
  51.     if None != i:
  52.         u = i
  53.     else:
  54.         i = "320305.131321201" or ""
  55.         u = i or ""
  56.     d = u.split(".")
  57.     m = int(d[0]) or 0
  58.     s = int(d[1]) or 0
  59.     S = [0 for count in range(1000)]
  60.     c = 0
  61.     v = 0
  62.     while v < len(r):
  63.         A = ord(r[v])
  64.         if 128 > A:
  65.             S[c] = A
  66.             c += 1
  67.         else:
  68.             if 2048 > A:
  69.                 S[c] = A >> 6 | 192
  70.                 c += 1
  71.             else:
  72.                 if 55296 == (64512 & A) and v + 1 < len(r) and 56320 == (64512 & ord(r[v+1])):
  73.                     v += 1
  74.                     A = 65536 + ((1023 & A) << 10) + (1023 & ord(r[v]))
  75.                     S[c] = A >> 18 | 240
  76.                     c += 1
  77.                     S[c] = A >> 12 & 63 | 128
  78.                     c += 1
  79.                 else:
  80.                     S[c] =  A >> 12 | 224
  81.                     c += 1
  82.                     S[c] = A >> 6 & 63 | 128
  83.                     c += 1
  84.             S[c] = 63 & A | 128
  85.             c += 1
  86.         v += 1
  87.     for count in range(S.count(0)):
  88.         S.remove(0)
  89.     p = m
  90.     F = chr(43) + chr(45) + chr(97) + (chr(94) + chr(43) + chr(54))
  91.     D = chr(43) + chr(45) + chr(51) + (chr(94) + chr(43) + chr(98)) + (chr(43) + chr(45) + chr(102))
  92.     b = 0
  93.     while b < len(S):
  94.         p += S[b]
  95.         p = n(p,F)
  96.         b += 1
  97.     p = n(p,D)
  98.     p ^= s
  99.     if 0 > p:
  100.         p = (2147483647 & p) + 2147483648
  101.     p %= 1e6
  102.     return str(int(p)) + "." + str(int(p) ^ m)
  103. headers = {
  104.     "User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36",
  105.     "Cookie":"BIDUPSID=A92A6802F7D86AED4D4E206949C7BDAD; PSTM=1650383456; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BDUSS=lKbG5Van54QlllVVlRfkZtSHB5UVFyZDJRQTFYVkZiRDBvMVk4Znc4OUpwWTlpRVFBQUFBJCQAAAAAAAAAAAEAAAChTKa30-7W5tL40NAzNDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkYaGJJGGhiUU; BDUSS_BFESS=lKbG5Van54QlllVVlRfkZtSHB5UVFyZDJRQTFYVkZiRDBvMVk4Znc4OUpwWTlpRVFBQUFBJCQAAAAAAAAAAAEAAAChTKa30-7W5tL40NAzNDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkYaGJJGGhiUU; APPGUIDE_10_0_2=1; BAIDUID=78B7B37E0E97AF8B823966378D315602:FG=1; newlogin=1; H_PS_PSSID=; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1660558471,1660720878,1660799867,1660886179; ab_sr=1.0.1_MDEwYjlkYzllNDcwNDU0Nzk3NjVhNzAzNmMyZTRhNTNjNmE0Y2ZlNjJkZWZmODc2OWM5ZjQ2NzQxMDk3MTU1MjkxN2Y5MzdiYjYwNDRlOWNmYTYyZTcxZTdiZjAwOGMxZGFiOWM2NmFhYjMzMjQxNWE0NTVlODY2ZDg5MTgzZjVkYzVlYmI5MDA0MmUyNTNjMDBjNWQ3Zjg5NzFkM2IzMzk0Y2ZiNGQxNjRkYzBhYzdhNDY3MTU3ZGUzMzMxNTc3; BAIDUID_BFESS=78B7B37E0E97AF8B823966378D315602:FG=1; delPer=0; PSINO=6; BA_HECTOR=8425858la08l20agak8i397n1hfum9i17; ZFY=x65kMuW:BavVpgIHCMW7HIirB1oQin3GXivMNQ6Y96Hc:C; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1660904815"
  106. }
  107. word = input("请输入待翻译的内容:")
  108. i = "320305.131321201"
  109. data = {
  110.     "from":"en",
  111.     "to":"zh",
  112.     "query":word,
  113.     "transtype":"realtime",
  114.     "simple_means_flag":"3",
  115.     "sign":e(word),
  116.     "token":"c4882f7699e4c8b6fce27da420eff7f2",
  117.     "domain":"common"
  118. }
  119. response = requests.post("https://fanyi.baidu.com/v2transapi?from=en&to=zh",headers=headers,data=data)
  120. if response.status_code == 200:
  121.     response.encoding = "utf-8"
  122.     print(response.json()["trans_result"]["data"][0]["dst"])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-5 08:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表