在爬取
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,在同一个地方,我的截图如下:
可以发现,中文字符部分丢失了一些字,但是在页面的其他部分,就没有丢失,比如
不知道是什么原因,有知道的大神还请帮忙解答一下!!!!多谢
不要用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])