请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

UnicodeDecodeError

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x8b in position 1: invalid start byte,怎么处理?

正在回答 回答被采纳积分+3

1回答

7七月 2023-08-21 17:28:24

这个大概就是因为下载下来的代码无法用正则匹配解析。所以,应该看看下载下来的是什么内容

0 回复 有任何疑惑可以回复我~
  • 提问者 慕勒1173257 #1
    谢谢,因为老师上课提到的网站已经关了,我就用老师的逻辑拉了虎牙的,import re
    from urllib import request
    
    class Spider():
        url = "https://www.huya.com/g/lol"
        root_pattern = '<span class="txt">([\s\S]*?)</span>'
        name_pattern = '<i class="nick">([\s\S]*?)</i>'
        number_pattern = '<i class="js-num">([\s\S]*?)</i>'
        def __fetch_content(self):
            r = request.urlopen(Spider.url)
            htmls = r.read()
            htmls = str(htmls,encoding="UTF-8")
            return htmls
    
        def __analysis(self,htmls):
            root_html = re.findall(Spider.root_pattern,htmls)
            print(root_html[0])
        def go(self):
            htmls = self.__fetch_content()
            self.__analysis(htmls)
    
    spider = Spider()
    spider.go()
    回复 有任何疑惑可以回复我~ 2023-08-22 11:07:28
  • 提问者 慕勒1173257 #2
    找到原因了,多了一个  > ,谢谢
    回复 有任何疑惑可以回复我~ 2023-08-22 11:54:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信