python 织梦自动采集更新脚本 您所在的位置:网站首页 dede自动采集更新 python 织梦自动采集更新脚本

python 织梦自动采集更新脚本

2024-07-14 00:21| 来源: 网络整理| 查看: 265

上次分享过一个自动采集入库的脚本(phpcms的),有童鞋建议改为表单提交形式,毕竟数据库入库代码改动成本比较高,而通过表单post数据只 需改下cookie和频道id就可以运行起来。所以,这次主要利用pycurl模块和fiddler抓包工具演示下dedecms是如何提交数据的。 尝试过dedecms post数据的童鞋可能已经发现,织梦post的数据跟一般数据有些不同,dedecms post数据格式是multipart,利用抓包工具你会发现这样一串东西:Content-Type: multipart/form-data; boundary=---------------------------249724317605,如:

那么具体该如何提交呢?主要有两点(post地址、cookie、频道id之类的问题自己解决): 1,headers增加Content-Type: multipart/form-data,如下图:

2,通过fiddler把提交的数据下载到本地(点击下图红框另存到到本地,编码不需更改),命名为data.txt. data = open('data.txt').read(),data直接作为post表单的数据即可。

实际上到此为止,你已经能够成功提交了,是不是很简单。 实际使用中,我们总不能把要更新的文章标题和内容写到txt里,如何把title、content等变成变量?一行代码即可搞定: data = data.replace('title@123456',title).replace('content@123456',content) 只要把data.txt文章标题的文字改为'title@123456',内容改为'content@123456',然后把他们替换掉即可。下面是完整代码地址:

 

# coding:utf-8 import pycurl,StringIO import sys reload(sys) sys.setdefaultencoding('utf8') headers = [ "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36", "Cookie:PHPSESSID=a8p9lr4jksj5kh9k3nhjaa5pu7; DedeUserID=1; DedeUserID__ckMd5=0023ecbe319d14d9; DedeLoginTime=1470919547; DedeLoginTime__ckMd5=b05a3b1e5c4bce22", "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryS1tN0Ueh3In2YSN8", ] def curl(url): c = pycurl.Curl() c.setopt(pycurl.REFERER, 'http://yourdomain.com/dede/article_add.php?channelid=1') c.setopt(pycurl.FOLLOWLOCATION, True) c.setopt(pycurl.MAXREDIRS,5) c.setopt(pycurl.CONNECTTIMEOUT, 60) c.setopt(pycurl.TIMEOUT,120) c.setopt(pycurl.ENCODING, 'gzip,deflate') # c.setopt(c.PROXY,ip) c.fp = StringIO.StringIO() c.setopt(pycurl.URL, url) c.setopt(pycurl.HTTPHEADER,headers) c.setopt(pycurl.POST, 1) c.setopt(pycurl.POSTFIELDS, data) c.setopt(c.WRITEFUNCTION, c.fp.write) c.perform() code = c.getinfo(c.HTTP_CODE) #返回状态码 html = c.fp.getvalue() #返回源代码 return html title = 'ITSEO培训怎么样'.encode('gbk','ignore') content = 'TSEO讲师 多年excel实战经验任职某通讯公司seo岗位,长期接触各类... 关注 私信 夜息 ITSEO创始人 ITSEO创始人,原途牛seo负责人。SEO顾问服务过多个行...'.encode('gbk','ignore') data = open('data.txt').read() data = data.replace('title@123456',title).replace('content@123456',content) print curl('http://yourdomain.com/dede/article_add.php')

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有