我的开发平台是 win7
工具是QT Creator
版本是Qt Core 5.15.2
我用QNetworkReply 去收网页内容并且分析
网页是很固定的纯文字内容
本来爬得很顺利的
以下是程式码
m_PageRequest.setUrl(QUrl{urlString});
QNetworkReply *reply = m_Manager.get(m_PageRequest);
QEventLoop event_loop;
QObject::connect(reply, SIGNAL(finished()), &event_loop, SLOT(quit()));
event_loop.exec();
QString headLine{reply->readLine()};
if(headLine.contains(SUCCESSED_HEADLINE)){
for(int i{0};i<23;i++) //我要的资料在剩下的第24行
reply->readLine();
QString raw{reply->readLine()};
parse(raw);
}
但是网页的文字里面包含某一个特定的名字的时候
程式就会出错。
这个名字从网页看起来只有三个字 XXX
把它复制上PTT来看也的只有三个字 XXX
但是在chorme的检视网页原始码里面就变成 XX X
中间空了一个空白
https://imgur.com/rH0j2nP
左边/uploader/后面那一串就是他的名字网页编码
本来正常情况下uploader后面还有资料是我需要的
但是只要遇到这个名字,字串却只有到名字中间的空白,空白后面的资料都没了
本来以为是跑到下一行,但并没有。
现在文章打到一半我在想是不是
QString raw{reply->readLine()};
在readLine() 的资料转换成 QString的时候,把那个空白当作结束符号
后面的就没有copy到raw 这个QString里面了