最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】百度空间修改帖子出现:文章修改失败,数据添加的一般错误

Python crifan 2147浏览 0评论

【问题】

用python模拟登陆百度空间,再模拟修改帖子,在提交http的POST请求后,返回的html中,出现错误提示:

    <div style="margin-top:20px;line-height:24px" class="f14" id="submitinfo">
     <div id="strid" class="f14">
     </div>
     <div id="errdetail" class="f14">
      数据添加的一般错误
      <script language="javascript">
       gotourl("");
      </script>
     </div>
    </div>
    <script language="javascript">
     <!–
                                writestr("文章修改失败!");
                            //–>

【解决过程】

1.有人也遇到同类问题:

“对不起,您的文章发表失败。数据添加的一般错误”

但是没人解决。只说是网络问题。而且和我这里程序模拟操作,不是一回事。

2. 竟然也搜到了,某人遇到同样的问题:

百度空间发文更新了啊 老是提示 “数据添加的一般错误”

但是没人解决。

3.后来还是自己随便试了试,在添加了对应的refer后,就解决了此问题了。

返回的html中,提示已经修改成功了:

writestr("您的文章已经修改成功。");

对应代码是:

#------------------------------------------------------------------------------
# set common header for http request
def getUrlResponse(url, postDict={}, headerDict={}) :
    if (postDict) :
        print "POST for ",url;
        #postData = urllib.urlencode(postDict, True);
        postData = urllib.urlencode(postDict);
        logging.debug("after urlencode, data:\r\n%s", postData);
        req = urllib2.Request(url, postData);
        req.add_header('Content-Type', "application/x-www-form-urlencoded");
        if(headerDict) :
            for key in headerDict.keys() :
                req.add_header(key, headerDict[key]);
    else :
        print "GET for ",url;
        req = urllib2.Request(url);

    req.add_header('User-Agent', gConst['userAgentIE9']);
    req.add_header('Cache-Control', 'no-cache');
    req.add_header('Accept', '*/*');
    #req.add_header('Accept-Encoding', 'gzip, deflate');
    req.add_header('Connection', 'Keep-Alive');
    resp = urllib2.urlopen(req);
    
    return resp;
    
    #--------------------------------------------------------------------------

    postDict = {
        "bdstoken"  : gVal['spToken'],
        "ct"        : "1",
        "mms_flag"  : "0",
        "cm"        : "2",
        "spBlogID"  : spBlogID,
        "spBlogCatName_o" : postDict['category'], # quoted category name
        "edithid"   : "",
        "previewImg": "",
        "spBlogTitle"   : postDict['titleName'],
        "spBlogText"    : gVal['newPostPatStr'],
        "spBlogCatName" : postDict['category'],
        "spBlogPower"   : "0",
        "spIsCmtAllow"  : "1",
        "spShareNotAllow":"0",
        "spVcode"       : "",
        "spVerifyKey"   : "",
    }
    
    headerDict = {
        # 如果不添加Referer,则返回的html则会出现错误:"数据添加的一般错误"
        "Referer" : gVal['blogEntryUrl'] + "/blog/modify/" + spBlogID,
        }
    
    resp = getUrlResponse(modifyUrl, postDict, headerDict);
            
    soup = BeautifulSoup(resp, fromEncoding="GB18030");
    prettifiedSoup = soup.prettify();
    logging.debug("Modify post return html\n---------------\n%s", prettifiedSoup);
    #--------------------------------------------------------------------------

转载请注明:在路上 » 【已解决】百度空间修改帖子出现:文章修改失败,数据添加的一般错误

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.169 seconds, using 22.47MB memory