最近业务部门需要对比平台上几个竞争对手的在售商品价格,因此编写了苏宁和京东的价格抓取脚本。
苏宁
业务部门会将需要抓取的商品的信息和url以Excel方式提交,因此我只需要遍历Excel并抓取指定url即可。由于苏宁商品页面的价格是动态生成的,因此使用selenium抓取。代码如下:
1 | ... |
在这里之所以使用find_elements_by_xpath而不是find_element_by_xpath是因为find_element_by_xpath在定位不到元素时会发生异常,而我在有限的时间里并不保证所有的页面都包含id='mainPrice'。
京东
相对于苏宁,京东的有一个api接口可以查询价格,只要业务部门提供京东商品的sku代码即可。以1816417为例,访问http://p.3.cn/prices/mgets?skuIds=J_1816417,返回:
1 | [ |
因此只要使用requests即可抓取京东价格数据:
1 | ... |