如果在Scrapy中使用Javascript,该如何做下一页

时间:2019-04-04 02:17:04

标签: python web-scraping scrapy

我在抓取下一个按钮时遇到问题,我尝试了基本按钮,但是在检查html代码后,使用了javascript我尝试了不同的规则,但是没有任何作用,这是网站的链接。

https://www2.hm.com/en_us/sale/shopbyproductladies/view-all.html

下一个按钮的名称为“加载更多产品”

这是我的工作代码

var b = dbContext.A_entities.SingleOrDefault(x => x.Id == form_a.Id)?.B;
if (form_a.B == null) b = null; 

1 个答案:

答案 0 :(得分:1)

正如评论中已经暗示的那样,根本不需要使用JavaScript。如果您访问该页面并打开浏览器的开发人员工具,则会看到正在发生类似这样的XHR请求:

https://www2.hm.com/en_us/sale/women/view-all/_jcr_content/main/productlisting_b48c.display.json?sort=stock&image-size=small&image=stillLife&offset=36&page-size=36

这些请求返回JSON数据,然后使用JavaScript将其呈现在页面上。因此,您可以使用json.dumps(response.text)之类的东西从这些URL中抓取数据。通过offsetpage-size参数控制要返回的产品。我假设您收到一个空JSON时就完成了。或者,您可以设置offset=0page-size=9999一次性获取数据(9999只是一个任意数字,在这种情况下就足够了。)