You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Curl获取Nature Materials稿件状态页面失败问题排查

解决Nature Materials稿件状态页面Curl获取无结果的问题

作为经常折腾学术投稿系统爬虫的人,我一眼就揪出你命令里的几个问题,咱们一个个拆解:

1. Cookie文件名拼写错误

你第一个命令生成的cookie文件是./my_cookie(带下划线),但第二个命令里写的是mycookie(没下划线)——系统根本找不到正确的cookie文件,自然拿不到登录后的页面内容。修正后的第二个命令应该是:

curl --cookie ./my_cookie 'http://mts-nm.nature.com/cgi-bin/main.plex?form_type=status_details&j_id=8&ms_id=32234&ms_rev_no=0&ms_id_key=SFfgnknwkgnregKsdnflsfgqn' > parsed.html

2. 登录请求方式完全错了

你第一个curl用--user+GET请求访问登录页面,但Nature的MTS投稿系统是表单登录,不是HTTP基本认证。--user参数只适用于少数简单的认证场景,你需要先抓包看登录表单的字段名(比如用户名对应email、密码对应passwd这类),然后用POST请求提交登录数据:

curl --cookie-jar ./my_cookie -d "email=你的账号&passwd=你的密码" 'http://mts-nm.nature.com/cgi-bin/main.plex'

(提示:打开浏览器开发者工具的「网络」面板,看点击登录时提交的表单参数,替换成实际字段名)

3. 没开启重定向跟随

登录成功后系统大概率会自动跳转,curl默认不会处理重定向,得加-L参数让它自动跟进:

curl -L --cookie-jar ./my_cookie -d "email=你的账号&passwd=你的密码" 'http://mts-nm.nature.com/cgi-bin/main.plex'

4. 大概率被网站拦截了

很多学术系统会检测请求的User-Agent,curl默认UA太扎眼,你可以模拟浏览器的UA绕过检测:

curl -L -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" --cookie-jar ./my_cookie -d "email=你的账号&passwd=你的密码" 'http://mts-nm.nature.com/cgi-bin/main.plex'

5. Grep匹配的小提醒

你的目标日期是16th May 18,用grep 'May 18'其实能匹配到,但前提是前面的步骤正确拿到了页面内容。如果还是没结果,可以先试试grep 'May' parsed.html确认页面是否有有效内容。

最后给个小测试方法:执行登录命令后,查看my_cookie文件是否有内容,如果是空的,说明登录没成功,重点排查POST表单的参数是否正确。


内容的提问来源于stack exchange,提问作者nofutur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:18:35