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