网页爬虫 - python爬取网页的时候,某些字符丢失

 守护雪天_使0062_423 发布于 2022-10-27 10:58

在爬取
http://www.jyeoo.com/chinese/...
这个网页的内容的时候,我使用beautifulSoup解析网页内容

head = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'}
    r = urllib2.Request('http://www.jyeoo.com/chinese/ques/detail/798530b2-05b0-4c11-9434-bb3f50c4c6f4',headers=head)
    html = urllib2.urlopen(r)
    soup = BeautifulSoup(html,'html5lib')
    print soup.prettify()

这样打印出来的网页内容与原网页相比,某些字符丢失了!!这是原网页的html,注意其中的文字

这是我爬取的html,在同一个地方,我的截图如下:

可以发现,中文字符部分丢失了一些字,但是在页面的其他部分,就没有丢失,比如

不知道是什么原因,有知道的大神还请帮忙解答一下!!!!多谢

1 个回答
  • 不要用bs4解析

    用re正则来取得内容


    还请大神指教,请问您之前遇到过类似的情况吗,这是什么原因造成的呢

    @天凉好个秋

    网页用js来防复制,为了避免禁用js,内容里的某些字是由js来补全的。
    所以,要有运行js的工具


    试了几次,好像丢失内容有点随机性的~

    多读取几次就正常了~

    python3

    import re, requests as req
    
    url = r'http://www.jyeoo.com/chinese/ques/detail/798530b2-05b0-4c11-9434-bb3f50c4c6f4'
    rsp = req.get(url)
    html = rsp.text
    fldsptn = re.compile(r'<fieldset.*?</fieldset>',re.S)
    flds = fldsptn.findall(html)
    print(flds[0])
    2022-11-12 01:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有