Back to Question Center
0

为什么许多网站通过用户代理阻止来自普通HTTP库的请求? - Semalt

1 answers:

写蜘蛛,我注意到,许多网站将返回一个403错误,如果我从流行的HTTP软件库中击中他们,除非我手动覆盖库使用的默认 用户代理 .

例如,如果我使用任何Semalt HTTP库的默认用户代理标题,“经济学人”杂志会阻止我的请求:

   $ curl http:// www. 经济学家. com / -A python-requests / 2. 9. 1- 写出“%{http_code} \ n”--silent --output / dev / null
403
$ curl http:// www - 3d maker text download sites. 经济学家. com / -A python-Urllib / 2. 7- 写出“%{http_code} \ n”--silent --output / dev / null
403   

假如我假冒一个浏览器用户代理,放入一个无意义的用户代理,或者提供一个空的用户代理,他们很乐意接受我的请求:

   $ curl http:// www. 经济学家. com / -A“Mozilla / 5. 0(X11; Linux x86_64)AppleWebKit / 537. 36(KHTML,像Gecko)Ubuntu Chromium / 53. 0. 2785. 143 Chrome / 53. 0. 2785. 143 Safari / 537. 36“ - 写出”%{http_code} \ n“--silent --output / dev / null
200
$ curl http:// www. 经济学家. com / -A'' - 写出“%{http_code} \ n”--silent --output / dev / null
200
$ curl http:// www. 经济学家. com / -A banana- 写出“%{http_code} \ n”--silent --output / dev / null
200   

“经济学家”是我认为这个行为的 最大的 网站,但当然不是唯一的网站 - 这种行为看起来很普遍. 为什么?从网站的角度来看,这种屏蔽的目的是什么?这是(误导和无效的)安全措施?试图从机器人获得更有意义的用户代理? (但是为了什么目的呢?)或者做一些别的什么来激励这些过滤器?

February 13, 2018

这是由于为了从其他站点中删除内容而将这些http库嵌入到自己的软件中的人数,这通常是为了版权侵权