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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
dc_api-0.3.1-py3-none-any.whl
(11.7 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6015fd79e3a72b8257726c739bc5c3202b66680e7bea8d450bb5d4a4f8dd3a1c
|
|
| MD5 |
feb0495e2d07d7af3ed3f9a920b7eed2
|
|
| BLAKE2b-256 |
a18917da29ef382760cc0e42c194ecda72f1ed9e043077c158981055b43c214e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4a61a40d53ec9b645c867511ba662d542386243b877c9ed35bd4e850c7c5509
|
|
| MD5 |
4451622da1a464faa9e6d4f2c729905a
|
|
| BLAKE2b-256 |
a3d11be9eb37bed5c2ba4a1f306f4da219ed0f50a791fc631fa2dcdc22aab872
|