【问题标题】:using mechanize to post on wordpress使用 mechanize 在 wordpress 上发帖
【发布时间】:2011-11-21 19:18:29
【问题描述】:

长话短说,我需要将自动化 cmets 发布到我的 WordPress 博客。我为 Python 找到了 mechanize(欢呼!无需在 PHP 中乱七八糟!)但我不能用它发布 cmets。根据调试信息我登录成功返回评论页面,但是cmets没有显示。更奇怪的是,当我尝试两次发布相同的内容时,我收到反馈“检测到重复评论”,就好像它已经发布过一样...... WTF?我的代码的相关部分:

br = mechanize.Browser()

cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

br.set_debug_redirects(True)
br.set_debug_responses(True)
br.set_debug_http(True)

logger = logging.getLogger('mechanize')
logger.addHandler(logging.StreamHandler(sys.stdout))
logger.setLevel(logging.INFO)

br.open('some wordpress comment page')

response = br.follow_link(url_regex=r'wp-login')

br.select_form(nr=0)
br['log'] = username
br['pwd'] = passwd
br.submit()

# the above logs me in successfully

br.select_form(nr=1)
br['comment'] = comment

response = br.submit()

...不起作用。有什么想法吗?

【问题讨论】:

  • 您需要批准 cmets 吗?
  • 不,我不需要批准他们

标签: python http web mechanize


【解决方案1】:

博客中内置的代码可能正在检测用户代理字符串并拒绝显示 cmets,但我对 Wordpress 代码或这个 python 模块几乎没有经验。

mechanize 看起来像是垃圾邮件发送者最好的朋友。哦,当然有成千上万的合法用途(当然我不是在指责你)。

您能否查看您博客的日志(access_log,如果您使用的是 Apache)并查看您的脚本使用什么来访问您的博客?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多