← back to Handbag Authentication
handbag_data/github_datasets/Pursearch/src/scrapy/shop/shop/spiders/shop_spider.py
39 lines
# -*- coding: utf-8 -*-
import scrapy
class ShopSpiderSpider(scrapy.Spider):
name = 'shop_spider'
allowed_domains = ['us.shein.com']
#allowed_domains = ['https://www.saksfifthavenue.com']
start_urls = ["https://us.shein.com/Women-Bags-c-2043.html?icn=women-bags&ici=us_tab01navbar07menu05&scici=navbar_2~~tab01navbar07menu05~~7_5~~real_2043~~SPcCccWomenCategory_default~~0~~0&sort=8&child_id=2155&page=3"]
#start_urls = ["https://www.saksfifthavenue.com/Handbags/Top-Handles-and-Satchels/shop/_/N-52k0hi/Ne-6lvnb5?FOLDER%3C%3Efolder_id=2534374306623862&Nao=900&Ns=P_gwp_flag%7C0%7C%7CP_bestsellers_units%7C1%7C%7CP_brandname%7C%7CP_arrivaldate%7C1%7C%7CP_product_code%7C1"]
def parse(self, response):
print("procesing:"+response.url)
html = ["https://us.shein.com" + i for i in response.css("div.j-switch-color-wrap").xpath("a/@href").extract()]
#html = [i for i in response.css("div.pa-quickview-redesign--visible").css("div.pa-product-large").css("div.image-container-large").xpath("a/@href").extract() if i != "#"]
#price = response.css("div.pa-quickview-redesign--visible").css("div.pa-product-large").css("div.product-text").css("span.product-price::text").extract()
name = response.css("div.j-switch-color-wrap").css("a.c-goodsitem__ratioimg.j-item-msg.j-item-msg-a.j-expose__target-goods-img::attr(title)").extract()
#name = response.css("div.pa-quickview-redesign--visible").css("div.pa-product-large").css("div.product-text").css("p.product-description::text").extract()
#brand = response.css("div.pa-quickview-redesign--visible").css("div.pa-product-large").css("div.product-text").css("span.product-designer-name::text").extract()
image = [i[2:] for i in response.css("div.j-switch-color-wrap").css("img.j-verlok-lazy::attr(data-src)").extract()]
#image = response.css("div.pa-quickview-redesign--visible").css("div.pa-product-large").css("div.image-container-large").css("img::attr(src)").extract()
row_data = zip(html, name, image)
for item in row_data:
scraped_info = {
#key:value
'page':item[0],
'product' : item[1], #item[0] means product in the list and so on, index tells what value to assign
'brand' : "shein",
'price' : "less $50",
'image' : item[2],
'type' : 'shein_satchel'
}
yield scraped_info