最近业务部门需要对比平台上几个竞争对手的在售商品价格,因此编写了苏宁和京东的价格抓取脚本。
苏宁
业务部门会将需要抓取的商品的信息和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 | ... |