Skip to main content

Deadly dimple unofficial dcinside api

Project description

dcinside-python3-api

Deadly simple non official dcinside api for python3

# 프로그래밍 갤러리 글 헤더 무한 크롤링(빠름)
for doc in dc_api.board(board_id="programming", skip_contents=True):
    print(doc["id"], doc["title"], doc["author"], doc["date"]) 
# => "131293"
# => "땔감 벗어나는법.tip ㅇㅇ(10.42) 1:41"
# => "왜 이거 안돼냐? ㅇㅇ(192.231) 1:40"
# => ...
# 프로그래밍 갤러리 글내용, 이미지, 댓글 포함 무한 크롤링(느림)
for doc in dc_api.board(board_id="programming"):
    print(doc["contents"])  # => "ㅗㅜㅑ\n미친다.."
    print(doc["images"])    # => "[imgsrc1, imgsrc2, ...]"
    for com in doc["comments"]:
        print(com["author"], com["contents"], com["date"])
        # => "ㅇㅇ(10.42) 나 남잔데 이런거 별로 10:20"
# 댓글쓰기
dc_api.write_comment(board_id="programming", doc_id="149123", name="ㅇㅇ", pw="1234", contents="ㅇㅈ")
# 로그인 후 글쓰기
dc_api.login(id="SAMPLE_ID", pw="SAMPLE_PW")
dc_api.write_doc(board_id="programming", title="흠..좋네", contents="기부니가 좋네")
dc_api.write_comment(board_id="programming", doc_id="149123", contents="설리")

Dependency

python3 requests, lxml

Usage

Place dc_api.py in your working directory

import dc_api

# full API
# for doc in dc_api.board(board_id="programming", num=5, start_page=2, skip_contents=True):

# full attributes of document and comment
for doc in dc_api.board(board_id="programming"):
    print(doc["id"])         # => "835027"
    print(doc["title"])      # => "땔감 벗어나는법.tip"
    print(doc["author"])     # => "ㅇㅇ(10.20)"
    print(doc["has_image"])  # => True
    print(doc["time"])       # => "1:41"
    print(doc["comment_num"])# => 3
    print(doc["voteup_num"]) # => 0
    print(doc["view_num"])   # => 14
    # Belows are None if parameter skip_contents=True
    print(doc["contents"])   # => "자바를 한다" 
    print(doc["imgs"])       # => ["http://static.dcinside.com/1o2i3joie", ...]
    print(doc["comments"])   # => generator
    for com in doc["comments"]:
        print(com["id"])        # => "123123"
        print(com["parent_id"]) # => "123122"
        print(com["time"])      # => "1:55"
        print(com["author"])    # => "ㅇㅇ(192.23)"
        print(com["contents"])  # => "개솔 ㄴㄴ"
        if com["dccon"]: 
            print(com["dccon"]) # => "http://dcimg5.dcinside.com/dccon.php?...."


# print document contents, images, and comments
contents, images, comments = dc_api.document(board_id="programming", doc_no="835027")
print(contents, images, comments)
# => "ㅗㅜㅑ\nㅗㅜㅑ.. [imgsrc1, imgsrc2, ..] <generator>"

# write doc
doc_no = dc_api.write_document(board_id="programming",
                               name="점진적자살", pw="1234", 
                               title="제목", contents="내용")
'''(Under developement)
# modify doc
doc_no = dc_api.modifyDoc(board_id="programming", is_miner=False, doc_no=doc_no, 
                          name="얄파고", password="1234", 
                          title="수정된 제목", contents="수정된 내용")
'''

# write comment
comment_no = write_comment(board_id="programming", doc_no=doc_no, 
                           name="점진적자살", pw="1234", contents="아님")

'''(Under development)
# delete comment
dc_api.removeComment(board_id="programming", is_miner=False, doc_no=doc_no, 
                     comment_no=comment_no, password="1234")

# delete doc
dc_api.removeDoc(board_id="programming", is_miner=False, doc_no=doc_no, password="1234")

# upvote
dc_api.upvote(board_id="programming", is_miner=False, doc_no=doc_no)

# upvote many times(it needs openvpn)
dc_api.upvote(board_id="programming", is_miner=False, doc_no=doc_no, num=10)
'''

# login
# if you skip the sess parameter, it will use the default session(and it affects all other API calls that use default session)
dc_api.login(id="", pw="", sess=dc_api.gen_session())

# write doc with logined session
# if you have skiped sess parameter of login API, you should also skip following API's sess parameters
doc_no = dc_api.writeDoc(sess=sess, board_id="programming", is_miner=False,                          
                         title="제목", contents="내용")

'''(Under development)
# modify doc with logined session
doc_no = dc_api.modifyDoc(sess=sess, board_id="programming", is_miner=False, 
                          title="수정된 제목", contents="수정된 내용")
'''

# write comment with logined session
# if you have skiped sess parameter of login API, you should also skip following API's sess parameters
# write comment
comment_no = write_comment(sess=sess, board_id="programming", doc_no=doc_no, 
                           name="점진적자살", pw="1234", contents="아님")

'''(Under development)
# delete comment with logined session
dc_api.removeComment(sess=sess, board_id="programming", is_miner=False, 
                     doc_no=doc_no, comment_no=comment_no)

# upvote with logined session
dc_api.upvote(board_id="programming", is_miner=False, doc_no=doc_no, sess=sess)

# logout
dc_api.logout(sess)
'''

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dc_api-0.3.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dc_api-0.3.1-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file dc_api-0.3.1.tar.gz.

File metadata

  • Download URL: dc_api-0.3.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for dc_api-0.3.1.tar.gz
Algorithm Hash digest
SHA256 6015fd79e3a72b8257726c739bc5c3202b66680e7bea8d450bb5d4a4f8dd3a1c
MD5 feb0495e2d07d7af3ed3f9a920b7eed2
BLAKE2b-256 a18917da29ef382760cc0e42c194ecda72f1ed9e043077c158981055b43c214e

See more details on using hashes here.

File details

Details for the file dc_api-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: dc_api-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for dc_api-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b4a61a40d53ec9b645c867511ba662d542386243b877c9ed35bd4e850c7c5509
MD5 4451622da1a464faa9e6d4f2c729905a
BLAKE2b-256 a3d11be9eb37bed5c2ba4a1f306f4da219ed0f50a791fc631fa2dcdc22aab872

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page