我正在尝试下载获取resutls时具有无限滚动的页面。我找到了ajax源码的url。当我把它放在浏览器上它工作正常,它返回json格式数据。但是当我尝试通过wget下载页面时,我收到了拒绝访问的消息。你知道为什么会这样吗?
我正在使用的命令是:
wget --cookies=on --load-cookies=cookies.txt --keep-session-cookies --user-agent=Firefox \
"https://www.somesite.com/ajax/pagelet/generic.php/pagination?data={"collection_token":"...","cursor":"...","tab_key":"....","profile_id":"...","overview":"...","ftid":"null","sk":"..."}&__user=...&__a=1"
答案 0 :(得分:1)
两种方法。
一种是使用像PhantomJs这样的库在webkit中呈现页面的DOM树,并在进行评估之前滚动页面。
第二种方法是在后台Ajax调用中找出模式并调用实际的AJAX端点
答案 1 :(得分:0)
首先,你有一个引用问题。该网址包含双引号,因此您需要使用反斜杠对其进行转义,或者使用单引号将URL括起来。
wget --cookies=on --load-cookies=cookies.txt --keep-session-cookies --user-agent=Firefox \
'https://www.somesite.com/ajax/pagelet/generic.php/pagination?data={"collection_token":"...","cursor":"...","tab_key":"....","profile_id":"...","overview":"...","ftid":"null","sk":"..."}&__user=...&__a=1'
答案 2 :(得分:-1)
使用wget时,您向页面发送GET请求,但AJAX使用POST请求。 在使用python时,使用urllib2创建POST请求通常可以解决问题。如果您需要进一步的帮助,请告诉我。