爬虫入门学习总结(2)——CSV批量上传到织梦CMS

目标:把CSV写入到织梦CMS文章,达到批量上传的效果

进度:基本达成目标,但还是有些小问题没有解决

存在的疑问:

  1. 分隔符的处理为什么有点乱
  2. 函数还是用得不熟

还没解决的技术性问题:

  1. 文字的转码问题
  2. 能不能直接写入数据库里
  3. 分隔符的处理
  4. 插入分隔符或者其他补充内容

下一步目标:

微博ajax的读取写入

关于CMS的写入找了很久,最后找到了一个post的方法,

整体来说就是利用cookie加上post的方式把数据提交,因为不擅长数据库,所以就用表单

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
'''
dede POST脚本
cookie版本
'''

import urllib.request
import re
import urllib.parse
import urllib
import time
import random
import csv

# 将后台网页的Cookie值存入变量headers中
headers = {
    'Cookie':'menuitems=1_1%2C2_1%2C3_1; BDTUJIAID=288f7238a71a322ef4a4b423f908581b; DedeUserID=1; Hm_lvt_52a10ee2c283866113dba4f3e15e276f=1537414986,1537577384,1537607838,1537868894; CookieZJWFANGDAOLIAN=111.29.146.30#2018-09-26-08#lugugo.com; PHPSESSID=il3l9b3698d4lv5lsiesd1gma7; DedeUserID__ckMd5=03a50c5a27e19a14; DedeLoginTime=1537924336; DedeLoginTime__ckMd5=4e9259145d980921; ENV_GOBACK_URL=%2Fdede%2Fcontent_list.php%3Fchannelid%3D1; lastCid=5; lastCid__ckMd5=aa09a148aac352f4'
}

def post(title,tags,source,content,typeid=8):
    # 网站后台的开发者工具中拿到的请求链接
    query = 'http://lugugo.com/dede/article_add.php'
    # 将得到的表单存入data_from中,并对其进行整理:
    # 非数字的需要添加''整理为字符串;结尾需要添加',',去掉一些不用的键值对
    data_from = {
        "username": "admin",
        "channelid": 1,  # 频道ID
        "dopost": 'save',
        "title": title,  # 文章标题
        "shorttitle": '',
        "redirecturl": '',
        "tags": tags,  # tag词
        "weight": 0,
        "picname": source,# 缩略图?
        "source": 'www.lugugo.com',
        "writer": '鹿谷网',
        "typeid":typeid,  # 后台的栏目ID
        "typeid2": '',
        "keywords":tags,  # 关键词
        "autokey": 1,
        "description": title,  # 描述
        "dede_addonfields": '',
        "remote": 0,
        "autolitpic": 1,
        "needwatermark": 1,
        "sptype": 'hand',
        "spsize": 5,
        "body": content,  # 正文内容
        "voteid": '',
        "notpost": 0,
        "click": random.randint(100,999), # 点击次数:随机生成
        "sortup": 0,
        "color": '',
        "arcrank": 0,
        "money": 0,
        # 发布时间,time方法获取本地时间
        "pubdate": time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()),
        "ishtml": 0,
        "filename": '',
        "templet": '',
        "imageField.x": 34,
        "imageField.y": 8,
    }
    # urlencode方法将字典编码,用于提交数据给url
    data = urllib.parse.urlencode(data_from).encode(encoding='iso-8859-10')
    s = str(data)
    sb = urllib.parse.unquote(s)
    sk = sb.encode('gb2312')
    # 只要填入了data参数就会变成post请求
    req = urllib.request.Request(query,data=sk,headers=headers)
    res = urllib.request.urlopen(req,timeout=30)
    result = res.read().decode('ISO-8859-1')
    # 提取文章url
    arturl = re.search(r'''<a href='(/dedecms/plus/view.php\?aid=\d+)' target='_blank'>''',result)
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值