我在抓取下一个按钮时遇到问题,我尝试了基本按钮,但是在检查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;
答案 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中抓取数据。通过offset
和page-size
参数控制要返回的产品。我假设您收到一个空JSON时就完成了。或者,您可以设置offset=0
和page-size=9999
一次性获取数据(9999
只是一个任意数字,在这种情况下就足够了。)