首页 > 解决方案 > 如何从站点地图中加载每个网址并抓取更多数据

问题描述

我正在尝试加载在某个站点的站点地图上找到的所有链接,然后加载所有这些链接并获取更多数据(库存、尺寸及其 ID)。到目前为止,代码找到了所有链接,将它们转换为 .json,但是当它加载每个站点并抓取更多数据时,它只会对站点地图中的最后一个链接进行处理。我需要它来处理站点地图中的所有链接。如果有人可以帮我解决这个问题,那就太棒了!

谢谢 :)

def check_endpoint():
    url = 'https://shopnicekicks.com/sitemap_products_1.xml'
    page = requests.get(url)
    soup = BeautifulSoup(page.text,'lxml')
    for url in soup.find_all('loc'): #load the url and find all product links.
        produrl = url.text
        UrlDB.append(produrl)
        endpoint = produrl + '.json' #take a product links and convert to .json
        JsonUrl = endpoint 

    #load each product link and find variants.
    req = requests.get(JsonUrl)
    reqJson = json.loads(req.text) 
    CartLink = JsonUrl.split("/")[2]    
    CartLink = "https://{}".format(CartLink)

    for product in reqJson['product']['variants']:
        Variants = product['id']
        Size = product['title']
        Price = product['price']                   
        Stock = product['inventory_quantity']
        atclink = "Size = {}, Stock = {}, Link = {}, /cart/{}:1 ".format(Size, Stock, CartLink, Variants)
        print (atclink) #print all variants 


return

标签: pythonjsonsitemapscrape

解决方案


在您的示例中间看到该评论吗?将该注释及其后的所有内容缩进 4 个空格。


推荐阅读