这个工具集可以帮助您从中国药物临床试验登记与信息公示平台(chinadrugtrials.org.cn)搜索和提取临床试验信息,特别是研究者和参与机构的详细信息。
- 支持关键词搜索和过滤
- 支持多页结果自动获取
- 提取临床试验的详细信息,特别是研究者和参与机构信息
- 生成结构化的Markdown格式报告
- 支持生成综合汇总报告,包含试验状态和研究机构分布统计
- 支持使用Cookie进行认证,避免访问限制
- 自动创建output目录,所有输出文件统一管理
- 支持二级搜索参数:适应症、登记号、试验状态、药物名称等
- Python 3.6+
- 网络连接(用于访问chinadrugtrials.org.cn)
- 克隆仓库到本地:
git clone https://github.com/PancrePal-xiaoyibao/search_china_trials.git
cd search_china_trials- 安装依赖:
pip install requests beautifulsoup4- 配置Cookie(可选,但推荐):
- 按照下方"使用Cookie进行认证"部分的说明获取Cookie
- 创建或编辑
config.json文件
chinadrugtrials_extract.py- 基础版查询脚本,提供基本的搜索和提取功能chinadrugtrials_detail_extractor_v1.py- 详细信息提取脚本,专注于提取研究者和参与机构信息config.json- 配置文件,用于存储Cookie等配置信息
python chinadrugtrials_extract.py -k KRAS -f "胰腺癌 实体瘤"参数说明:
-k, --keywords: 搜索关键词-f, --filter: 过滤关键词,用空格分隔多个关键词-i, --indication: 适应症(二级搜索参数)-r, --reg_no: 登记号(二级搜索参数)-s, --state: 试验状态(二级搜索参数),默认为"进行中"-a, --all-states: 搜索所有试验状态,覆盖默认的"进行中"状态-d, --drugs-name: 药物名称(二级搜索参数)-p, --pages: 最大页数,如果不指定则获取所有页面-o, --output: 输出文件名,默认为日期_关键词.md-l, --local: 使用本地文件作为响应内容,而不是从网站获取--no-auto-pages: 不自动获取所有页面,只获取第一页
python chinadrugtrials_detail_extractor_v1.py -k KRAS -f "胰腺癌 实体瘤" --comprehensive参数说明:
-k, --keywords: 搜索关键词-f, --filter: 过滤关键词,用空格分隔多个关键词-i, --indication: 适应症(二级搜索参数)-r, --reg_no: 登记号(二级搜索参数)-s, --state: 试验状态(二级搜索参数),默认为"进行中"-a, --all-states: 搜索所有试验状态,覆盖默认的"进行中"状态-d, --drugs-name: 药物名称(二级搜索参数)-c, --ckm-index: ckm_index参数,默认为1-p, --pages: 最大页数,如果不指定则获取所有页面-o, --output: 输出文件名,默认为日期_关键词_details.md--detail-dir: 详细信息输出目录,默认为output/details-l, --local: 使用本地文件作为响应内容,而不是从网站获取--no-auto-pages: 不自动获取所有页面,只获取第一页--debug: 调试模式,保存更多中间文件
所有生成的文件都会保存在output目录下,结构如下:
output/
├── YYYYMMDD_关键词.md # 基本搜索结果
├── YYYYMMDD_关键词_details.md # 详细信息汇总文件
├── YYYYMMDD_关键词_comprehensive.md # 综合汇总报告(如果使用--comprehensive参数)
├── trial_detail_*.html # 原始HTML响应(用于调试)
└── details/
└── 登记号_detail.md # 每个临床试验的详细信息
为了避免访问限制和提高稳定性,您可以使用Cookie进行认证。以下是获取和使用Cookie的方法:
- 安装并配置Charles(https://www.charlesproxy.com/)
- 配置浏览器使用Charles作为代理
- 在浏览器中访问 http://www.chinadrugtrials.org.cn/
- 在Charles中找到对应的请求,查看请求头中的Cookie字段
- 复制完整的Cookie字符串
- 打开浏览器(Chrome、Firefox等)
- 访问 http://www.chinadrugtrials.org.cn/
- 打开开发者工具(F12或右键 -> 检查)
- 切换到"网络"(Network)选项卡
- 刷新页面,选择任意一个请求
- 在请求头(Headers)中找到Cookie字段
- 复制完整的Cookie字符串
Cookie示例:
JSESSIONID=1A2B3C4D5E6F7G8H9I0J; eap_language=zh_CN; eap_uid=123456789
- 创建或编辑
config.json文件:
{
"cookies": "这里粘贴您的完整Cookie字符串",
"last_updated": "2023-10-01"
}- 运行脚本时会自动读取配置文件中的Cookie
python chinadrugtrials_detail_extractor_v1.py -k KRAS -f "胰腺癌" --cookie "这里粘贴您的完整Cookie字符串"A: 可能是网站访问限制或Cookie过期。尝试更新Cookie或减少请求频率。
A: 使用-p参数限制页数,或使用--local参数结合已保存的响应内容进行测试。
A: 确保您的终端支持UTF-8编码。在Windows上,可能需要设置chcp 65001。
A: 使用-a或--all-states参数,或者将-s参数设置为空字符串。
search_china_trials/
├── chinadrugtrials_extract.py # 基础搜索脚本
├── chinadrugtrials_detail_extractor_v1.py # 详细信息提取脚本
├── config.json # 配置文件
├── README.md # 项目说明文档
└── output/ # 输出目录(自动创建)
└── details/ # 详细信息目录(自动创建)
欢迎贡献代码或提出建议!请遵循以下步骤:
- Fork本仓库
- 创建您的特性分支 (
git checkout -b feature/amazing-feature) - 提交您的更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建一个Pull Request
- 请合理控制访问频率,避免对网站造成过大负担
- Cookie有效期有限,如果遇到访问问题,请更新Cookie
- 网站结构可能会变化,如果脚本无法正常工作,可能需要更新解析逻辑
- 建议使用
--local参数和保存的响应内容进行测试,以减少对网站的请求
MIT