鱼C论坛

 找回密码
 立即注册
查看: 2476|回复: 4

53讲最后一题

[复制链接]
发表于 2020-12-7 16:23:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这个是我自己写的 53讲最后一题,有没有大佬帮我改正一下代码

import urllib.request
import chardet
import os

def main():
    f = open('urls.txt')
    for each_line in f:
        tuple = (numbers,contents) = each_line.split('.',1)
        number = tuple[0]
        content = tuple[1]
        save(number,content)   
    f.close()

def save(number,content):
    f1 = open('url_%s.txt' %number,'w')
    f1.write(get(content))
    f1.close()

        
def get(content):
    response = urllib.request.urlopen(content)
    html = response.read()
        
    encode = chardet.detect(content)['encoding']
    if encode == 'GB231':
        ncode = 'GBK'
        
    return html.decode(encode,'ignore')
        


if __name__ =='__main__':
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-12-7 16:24:41 | 显示全部楼层
1607329168(1).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-7 17:55:48 | 显示全部楼层
本帖最后由 suchocolate 于 2020-12-7 17:56 编辑

chardet.detect不接收字符串,接收byte:
>>> chardet.detect('测试')
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    chardet.detect('测试')
  File "C:\d\Program Files\python3\Lib\site-packages\chardet\__init__.py", line 34, in detect
    '{0}'.format(type(byte_str)))
TypeError: Expected object of type bytes or bytearray, got: <class 'str'>
>>> bst = '测试'.encode('utf-8')
>>> chardet.detect(bst)
{'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}
>>> 
你把curls.txt的内容也发出来,帮你分析分析如何改。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-8 10:38:59 | 显示全部楼层
多谢大佬!!
1607395064(1).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-8 19:33:02 | 显示全部楼层
自己顶贴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 03:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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