美文网首页
爬虫过程中遇到的各种问题

爬虫过程中遇到的各种问题

作者: 开心的小哈 | 来源:发表于2022-09-29 11:13 被阅读0次

    乱码问题:

    首先我们要知道网站使用的是什么编码,我们打开该网站的控制台,点击F12浏览器快捷键打开,输入document.charset回车即可查看该网站的编码

    • 问题爬取的数据样本为:
      ´å¯¹æ��ç¨�ï¼�å��è��æ��å��ï¼�å�¨çº¿å®�ä¾�ä¿�æ��修订ï¼�ä½�æ�¯æ��们ä¸�è�½
      解决方案:通过编码、解码的方式content.encode(‘raw_unicode_escape’).decode()
      解决方案:接指定res.encoding,指定内容和网页设置的编码格式一致即可;
      解决方案:通过res.apparent_encoding指定
    • 问题:爬取的数据展示成\xb7\xaf\xe5\xb8\xa6\xe9\xa3\x8
      解决方案:使用str(content, ‘utf8’)的方法即可解决
      或者可以使用它的方法
      Html=html.text.encode('iso-8859-1').decode('gbk')#对编码格式为gbk方式读取

    请求params的编码问题

    我们在使用requests进行传入params时遇到的编码问题如下方代码

    par = {'isPagination': 'true', 'pageHelp.pageSize': '25', 'pageHelp.pageNo': 1, 'pageHelp.beginPage': 1,
           'pageHelp.cacheSize': '1', 'pageHelp.endPage': 1, 'sqlId': 'BS_KCB_GGLL', 'siteId': '28',
           'channelId': '10007%2C10008%2C10009%2C10010', 'type': '', 'stockcode': '', 'extTeacher': '', 'extWTFL': '',
           'createTime': '', 'createTimeEnd': '', 'order': 'createTime%7Cdesc%2Cstockcode%7Casc'}
    
    par2 = {'isPagination': 'true', 'pageHelp.pageSize': '25', 'pageHelp.pageNo': 1, 'pageHelp.beginPage': 1,
           'pageHelp.cacheSize': '1', 'pageHelp.endPage': 1, 'sqlId': 'BS_KCB_GGLL', 'siteId': '28',
           'channelId': '10007,10008,10009,10010', 'type': '', 'stockcode': '', 'extTeacher': '', 'extWTFL': '',
           'createTime': '', 'createTimeEnd': '', 'order': 'createTime|desc,stockcode|asc'}
    headers = {'Host': 'query.sse.com.cn', 'Pragma': 'no-cache', 'Referer': 'http://www.sse.com.cn/',
               'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.24'}
    
    url='http://localhost:8080/gethttpbody/hello'
    import requests
    res=requests.get(url=url,params=par,headers=headers)
    print(res.text)
    
    

    发送请求par时请求的方式是错误的应为在params=par时par为对象,对象中的字符串值不会进行url请求参数转码,导致发送给服务器后得到的是createTime%7Cdesc%2Cstockcode%7Casc,(其中%7就是|的url编码)如果后台的逻辑是那|进行拆分字符串,处理该就行识别到%7就会出错;

    相关文章

      网友评论

          本文标题:爬虫过程中遇到的各种问题

          本文链接:https://www.haomeiwen.com/subject/yxxkartx.html