相关问题:Set session to scrape page
作为一个个人项目,我正在尝试抓取我大学的类(class)目录,将其作为 RESTful API 提供。
网址1:https://duapp3.drexel.edu/webtms_du/
网址2:https://duapp3.drexel.edu/webtms_du/Colleges.asp?Term=201125&univ=DREX
访问 URL1 会设置 URL2 所需的 cookie。我成功接收和发送 cookie,如下所示:
curl -c recd url1<br/>
curl -v -b recd url2
但是,我得到的响应与我在浏览器中看到的响应不同。基本上,我的浏览器会显示一个专业列表,而 curl
获取一个页面,其中不是专业列表,而是
<FONT COLOR=red size=5> The lists of subjects are not available online for the selected term at this time.</FONT><FONT COLOR=red size=5> Please check back again later.</FONT>
我想他们可能正在检查用户代理,所以我也尝试了这个:
curl -b recdcookies --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" https://duapp3.drexel.edu/webtms_du/Colleges.asp?Term=201125&univ=DREX
但同样出乎意料的 react 。
是什么导致浏览器和curl之间的输出不同?至curl -v
显示它只设置一个 cookie。是不是因为他们是https
页,我需要向 curl
添加另一个参数?
最佳答案
在命令行上使用curl时,如果url包含与号(&
),则必须将其括在引号中,因为它在unix系统上具有特殊含义。
关于http - 使用curl接收和发送cookie,但没有得到预期的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8757444/