web抓取一个网页,其中包含通过ajax加载的动态内容

时间:2016-06-16 00:10:09

标签: python web-scraping scrapy

说我想在此pagehttp://shop.coles.com.au/online/national/bread-bakery/fresh/bread#pageNumber=2&currentPageSize=20

上搜集产品

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

我想知道在ajax通话结束后是否可以获得response

1 个答案:

答案 0 :(得分:2)

您可以通过ser = serial.Serial('/dev/ttyACM1', 115200,timeout=0) 获取catalogId发出POST请求所需的form和其他参数值:

id="search"

使用FormRequest提交此表单。

  

我想知道在ajax呼叫结束后是否可以得到响应?

Scrapy不是一个浏览器 - 它不会产生额外的AJAX请求来加载页面,并且没有任何内置的执行JavaScript。您可以考虑使用真正的浏览器并在更高级别上解决它 - 请查看selenium package。还有相关的scrapy-splash项目。

另见: