东尧:【织梦自动发文】python开发dedeCMS自动发文工具:Cookie版本

  • A+
所属分类:SEO培训课程

dedecms post的方式有两种:一种是使用接口,另一种是使用cookie的方式(抓包)。今天我们要学习的就是使用cookie的方式来开发织梦CMS的自动发文工具。

东尧在文章最后将织梦cms POST工具的源码下载链接分享出来了,大家可以关注我的公众号(陈东尧)回复关键词“织梦自动发文工具”获取下载密码,后期我也将在公众号上更新各类python开发的工具源码,都会开放给大家下载,希望能够对大家的工作有帮助。

东尧公众号

首先我们登录dede后台:“127.0.0.1/dede文件夹/dede”回车就可以进入登录界面了。

使用谷歌浏览器进入后台后ctrl+shift+i 调出抓包工具查看接口(需要勾选上“Preserve log”选项)。在后台点击“核心”-----“我发布的文档”-----“添加文档”,输入标题、正文、栏目等内容,单击“保存”,就可以在右边的抓包工具中看到相关内容。可以看到,这里的发送方式是POST,下边的“Request Payload”这里提供了表单信息,包括了我们的标题、正文内容等等。

需要勾选上“Preserve log”选项

需要勾选上“Preserve log”选项

“Request Payload”这里提供了表单信息

“Request Payload”这里提供了表单信息

 

将表单内容复制到notepad++中进行处理,先把不用的部分通过正则匹配来去掉:

------.*:去除掉第一行

------.*:去除掉第一行

 

Content-Disposition: form-data; name=:去除掉表单字段名之前的内容。

Content-Disposition: form-data; name=:去除掉表单字段名之前的内容。

 

"\r\n\r\n------":  :将剩下的表单信息排版为键值对的格式

"\r\n\r\n------":  :将剩下的表单信息排版为键值对的格式

 

^\r\n :去掉空行。剩下的就是表单字段名和其对应的值。将得到的内容存入data_from变量中,方便后面使用。

^\r\n :去掉空行

 

接下来我们就到pycharm里面写爬虫程序了。首先我们在开发者工具里面找到cookie和Request URL,存入到变量headers和query中。

  1. headers = {
  2.     'Cookie':'menuitems=1_1%2C2_1%2C3_1; PHPSESSID=sg8a5cjfiu6r3pca2134e4lrv2; DedeUserID=1; DedeUserID__ckMd5=0b9a3790bccf288a; '
  3.              'DedeLoginTime=1526696290; DedeLoginTime__ckMd5=4fe1421ee2ff0bde; _csrf_name_d47ec03b=f05b64b0d0a525132b5451d0b18705ad; '
  4.              '_csrf_name_d47ec03b__ckMd5=f74474ebcf9bc78b; lastCid=1; lastCid__ckMd5=0b9a3790bccf288a; ENV_GOBACK_URL=%2Fdedecms%2Fdede'
  5.              '%2Fcontent_list.php%3Fchannelid%3D1%26cid%3D1'
  6. }
  7. query = 'http://127.0.0.1/dedecms/dede/article_add.php'

 

cookie

cookie

Request URL

Request URL

 

接下来我们将网页的内容打印出来看看,发现文章链接在“查看文章”对应的链接中,所以我们对这部分内容进行提取url,并进行url补全的操作:

  1. # urlencode方法将字典编码,用于提交数据给url
  2.     data = urllib.parse.urlencode(data_from).encode(encoding='utf-8')
  3. # 只要填入了data参数就会变成post请求
  4.     req = urllib.request.Request(query,data=data,headers=headers)
  5.     res = urllib.request.urlopen(req,timeout=30)
  6.     result = res.read().decode('utf-8')
  7. # 提取文章url
  8.     arturl = re.search(r'''<a href='(/dedecms/plus/view.php\?aid=\d+)' target='_blank'>''',result)
  9.     if arturl:
  10.         arturl = urllib.parse.urljoin(query,arturl.group(1))
  11.     else:
  12.         arturl = ''
  13.         print('发布失败')
  14.     print(arturl)

 

文章链接在“查看文章”对应的链接

 

因为我们之前用短文学网散文抓取工具得到的800多篇文章都存在duanwenxue.txt文件中,并且标题和正文是用“####”分开的,所以我们可以利用for循环和字符串切割的方式将每篇文章的标题和正文分别提取出来。这里由于文章数量较多,东尧就用前10篇文章作为测试:

  1. content_list = [line.strip() for line in open('duanwenxue.txt')]
  2.     for wz in content_list[:10]:
  3.         text = wz.split('####')
  4.         title = text[0]
  5.         content = text[1]

 

标题和正文是用“####”分开的

标题和正文是用“####”分开的

 

最后全部的10篇文章都发布成功了,发布结果如下:

全部发布完成

全部发布完成

所有文章发布完成

文章批量发布完成

文章发布内页效果

文章发布内页效果

 

织梦Cookie方式的POST其实还比较简单,接下来的课程中东尧将分享使用接口POST的方法,织梦cms、PHPcms、帝国cms都适用。自动发文系统可以说是SEOer必备的工具之一,掌握后不仅可以提高工作效率,还可以分享出去帮助到其他SEO同行。

 

源码下载

东尧已经将本文涉及到的源代码放在了百度网盘中:

立即下载源代码:https://pan.baidu.com/s/1o_n-pBEko6-9V3MgYLEd_w

获取网盘密码方法:关注我的公众号(陈东尧)回复关键词“织梦自动发文工具”即可获得下载密码。

 

相关文章

【帝国CMS自动发文】python开发帝国CMS自动发文工具:接口版

【织梦自动发文】python开发dedeCMS自动发文工具:接口版本

【phpCMS自动发文】python开发phpCMS自动发文工具

【自动发文】python开发三大主流CMS系统自动推文工具(一):环境配置

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • 多多 多多 0

      已下载织梦的还没用