|
|
发表于 2020-2-26 01:28:06
|
显示全部楼层
- Request URL: https://www.pexels.com/search/beautiful%20girl/
- Request Method: GET
- Status Code: 200
- Remote Address: 104.17.209.102:443
- Referrer Policy: no-referrer-when-downgrade
- age: 5610
- alt-svc: h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443"; ma=86400
- cache-control: max-age=3600
- cf-cache-status: HIT
- cf-ray: 56ab56e44b4b99c5-LAX
- content-encoding: br
- content-type: text/html; charset=utf-8
- date: Tue, 25 Feb 2020 17:18:36 GMT
- expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
- expires: Tue, 25 Feb 2020 18:18:36 GMT
- server: cloudflare
- status: 200
- vary: Accept-Encoding
- x-frame-options: ALLOWALL
- x-request-id: 9e10213b-644a-4e0e-90e0-8aa664df9caa
- x-runtime: 1.586400
复制代码
我用浏览器和postman都测试了,浏览器没有问题,postman有问题.
上面这个是浏览器中获取到的参数,可以看出,人家使用了cf的cache,都是cf代理的,而cf是专门做这个的,所以看样子很难搞.cf既然是专门搞这个的,显然可以对包进行特征检测,从而指导你是否是使用浏览器访问的.
另外,在浏览器中,我关闭了js,所有的资源依然可以访问,这说明确实是cf搞得鬼.
爬虫方面,最简单的做法是直接用浏览器,可以用pyqtwebengine,或者pythonnet+cefsharp,或者直接用chromedriver+selenium,需要注意的是可以把浏览器的js引擎关闭掉,这样就可以非常快了.当然,用qt4的webkit也可以. |
|