网页爬虫 - python爬取网页的时候,某些字符丢失
巴扎黑
巴扎黑 2017-04-18 09:46:43
[Python讨论组]

在爬取
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])
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号