不能屏幕刮网站

时间:2015-04-01 07:31:40

标签: javascript http redirect cookies screen-scraping

我正在尝试筛选以下页面的内容(列出所有医学专业)和本页面中包含的链接的内容(所有提供特定专业培训的大学)。这是包含所有专业的主页: https://services.aamc.org/eras/erasstats/par/index.cfm

页面上的第一个链接是专业青少年医学(儿科),网址为https://services.aamc.org/eras/erasstats/par/display8.cfm?NAV_ROW=PAR&SPEC_CD=321

当我尝试直接导航到上述URL时,服务器会将我重定向回主页面。但是,单击青少年医学的链接会将我带到我想要访问的页面。

我很困惑为什么点击链接会将我带到正确的页面,但导航到相同的URL却没有。以下是我的想法:

1)Javascript问题 - 我禁用了JS,我仍然继续被重定向到主页面。此外,单击表格中的链接仍然会将我带到正确的页面。

2)Cookies-我禁用了所有cookie,但在尝试使用直接URL访问Adolescent Medicine页面时仍然遇到了同样的问题。有趣的是,使用表格链接进行导航仍然适用于所有禁用的Cookie。

3)HTTPS-不确定如何检查是否导致问题。

我花了很多时间在Chrome浏览器上查看开发人员的控制台,并且无法找到为什么我无法使用直接网址访问专业页面的原因。任何帮助或指导将非常感谢!

1 个答案:

答案 0 :(得分:0)

关键是确保设置了适当的标头。该服务器显然需要有效的用户代理和正确的引用者集。一旦我设置了下面显示的标题,就可以了!

headers = {            '接受':' text / html的,应用/ XHTML + xml的,应用/ XML; Q = 0.9,图像/ WEBP, / 的; Q = 0.8&#39 ;,            '接受编码':' gzip,deflate,sdch',            '接受 - 语言':' EN-US,EN; Q = 0.8&#39 ;,            '连接':'保活&#39 ;,            '用户代理':' Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 39.0.2171.95 Safari / 537.36',            '引荐' :' https://services.aamc.org/eras/erasstats/par/index.cfm' }