gpt4 book ai didi

python - 网络抓取具有通过ajax加载的动态内容的网页

转载 作者:太空狗 更新时间:2023-10-30 01:27:40 26 4
gpt4 key购买 nike

假设我希望在此 page 上抓取产品( http://shop.coles.com.au/online/national/bread-bakery/fresh/bread#pageNumber=2&currentPageSize=20 )

但是产品是从 post 请求加载的。这里有很多帖子建议模拟获取动态内容的请求,但在我的例子中,Form Data 对我来说是未知的,即 catalogIdcategoryId.

我想知道是否有可能在 ajax 调用完成后得到 response

最佳答案

您可以使用 id="search"form 获取发出 POST 请求所需的 catalogId 和其他参数值:

<form id="search" name="search" action="http://shop.coles.com.au/online/SearchDisplay?pageView=image&amp;catalogId=10576&amp;beginIndex=0&amp;langId=-1&amp;storeId=10601" method="get" role="search">
<input type="hidden" name="storeId" value="10601" id="WC_CachedHeaderDisplay_FormInput_storeId_In_CatalogSearchForm_1">
<input type="hidden" name="catalogId" value="10576" id="WC_CachedHeaderDisplay_FormInput_catalogId_In_CatalogSearchForm_1">
<input type="hidden" name="langId" value="-1" id="WC_CachedHeaderDisplay_FormInput_langId_In_CatalogSearchForm_1">
<input type="hidden" name="beginIndex" value="0" id="WC_CachedHeaderDisplay_FormInput_beginIndex_In_CatalogSearchForm_1">
<input type="hidden" name="browseView" value="false" id="WC_CachedHeaderDisplay_FormInput_browseView_In_CatalogSearchForm_1">
<input type="hidden" name="searchSource" value="Q" id="WC_CachedHeaderDisplay_FormInput_searchSource_In_CatalogSearchForm_1">
...
</form>

使用 FormRequest提交此表格。


I'm wondering is it possible to get the response after the ajax call is finished?

Scrapy 不是浏览器——它不会发出额外的 AJAX 请求来加载页面,也没有内置的东西来执行 JavaScript。您可能会考虑使用真正的浏览器并在更高级别上解决它 - 查看 selenium package .还有相关的scrapy-splash项目。

另见:

关于python - 网络抓取具有通过ajax加载的动态内容的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com