2024-10-19 16:43:25 +00:00
|
|
|
# 声明:本代码仅供学习和研究目的使用。使用者应遵守以下原则:
|
|
|
|
# 1. 不得用于任何商业用途。
|
|
|
|
# 2. 使用时应遵守目标平台的使用条款和robots.txt规则。
|
|
|
|
# 3. 不得进行大规模爬取或对平台造成运营干扰。
|
|
|
|
# 4. 应合理控制请求频率,避免给目标平台带来不必要的负担。
|
|
|
|
# 5. 不得用于任何非法或不当的用途。
|
|
|
|
#
|
|
|
|
# 详细许可条款请参阅项目根目录下的LICENSE文件。
|
|
|
|
# 使用本代码即表示您同意遵守上述原则和LICENSE中的所有条款。
|
|
|
|
|
|
|
|
|
2024-06-09 01:35:52 +00:00
|
|
|
import argparse
|
2024-06-16 16:25:48 +00:00
|
|
|
|
2024-06-09 01:35:52 +00:00
|
|
|
import config
|
2024-06-12 02:17:37 +00:00
|
|
|
from tools.utils import str2bool
|
2024-06-09 01:35:52 +00:00
|
|
|
|
2024-06-11 15:55:42 +00:00
|
|
|
|
2024-06-09 01:35:52 +00:00
|
|
|
async def parse_cmd():
|
|
|
|
# 读取command arg
|
|
|
|
parser = argparse.ArgumentParser(description='Media crawler program.')
|
2024-09-07 16:00:04 +00:00
|
|
|
parser.add_argument('--platform', type=str, help='Media platform select (xhs | dy | ks | bili | wb | tieba | zhihu)',
|
|
|
|
choices=["xhs", "dy", "ks", "bili", "wb", "tieba", "zhihu"], default=config.PLATFORM)
|
2024-06-09 01:35:52 +00:00
|
|
|
parser.add_argument('--lt', type=str, help='Login type (qrcode | phone | cookie)',
|
2024-06-11 15:55:42 +00:00
|
|
|
choices=["qrcode", "phone", "cookie"], default=config.LOGIN_TYPE)
|
2024-06-09 01:35:52 +00:00
|
|
|
parser.add_argument('--type', type=str, help='crawler type (search | detail | creator)',
|
2024-06-11 15:55:42 +00:00
|
|
|
choices=["search", "detail", "creator"], default=config.CRAWLER_TYPE)
|
2024-06-09 01:35:52 +00:00
|
|
|
parser.add_argument('--start', type=int,
|
2024-06-11 15:55:42 +00:00
|
|
|
help='number of start page', default=config.START_PAGE)
|
2024-06-09 01:35:52 +00:00
|
|
|
parser.add_argument('--keywords', type=str,
|
2024-06-11 15:55:42 +00:00
|
|
|
help='please input keywords', default=config.KEYWORDS)
|
2024-06-12 02:17:37 +00:00
|
|
|
parser.add_argument('--get_comment', type=str2bool,
|
|
|
|
help='''whether to crawl level one comment, supported values case insensitive ('yes', 'true', 't', 'y', '1', 'no', 'false', 'f', 'n', '0')''', default=config.ENABLE_GET_COMMENTS)
|
|
|
|
parser.add_argument('--get_sub_comment', type=str2bool,
|
|
|
|
help=''''whether to crawl level two comment, supported values case insensitive ('yes', 'true', 't', 'y', '1', 'no', 'false', 'f', 'n', '0')''', default=config.ENABLE_GET_SUB_COMMENTS)
|
|
|
|
parser.add_argument('--save_data_option', type=str,
|
|
|
|
help='where to save the data (csv or db or json)', choices=['csv', 'db', 'json'], default=config.SAVE_DATA_OPTION)
|
|
|
|
parser.add_argument('--cookies', type=str,
|
|
|
|
help='cookies used for cookie login type', default=config.COOKIES)
|
2024-06-09 01:35:52 +00:00
|
|
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
# override config
|
|
|
|
config.PLATFORM = args.platform
|
|
|
|
config.LOGIN_TYPE = args.lt
|
|
|
|
config.CRAWLER_TYPE = args.type
|
|
|
|
config.START_PAGE = args.start
|
|
|
|
config.KEYWORDS = args.keywords
|
2024-06-12 02:17:37 +00:00
|
|
|
config.ENABLE_GET_COMMENTS = args.get_comment
|
|
|
|
config.ENABLE_GET_SUB_COMMENTS = args.get_sub_comment
|
|
|
|
config.SAVE_DATA_OPTION = args.save_data_option
|
|
|
|
config.COOKIES = args.cookies
|