出现浏览器能请求到数据,但使用API工具或爬虫却获取不到数据的情况,可能有以下几种原因:
User - Agent
(标识浏览器类型、版本等)、Referer
(表明请求来源页面)等。而API工具或爬虫如果没有正确设置这些请求头信息,网站可能会识别出这不是正常的浏览器请求,从而拒绝返回数据。例如,爬虫中若未设置 User - Agent
或设置的 User - Agent
明显不符合常规浏览器的特征,就可能被网站判定为异常请求。7 回答5.5k 阅读
6 回答7k 阅读✓ 已解决
2 回答3.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
2 回答711 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
多半是因为数据是通过JavaScript渲染的,如果你直接调API的话不会像在浏览器里一样自动执行JavaScript,就拿不到被JavaScript修改后的HTML,爬虫通常会用无头浏览器来处理这种情况,考虑使用Selenium或者Puppeteer(如果用JavaScript做爬虫)/Pyppeteer(如果用Python做爬虫)