python - 如何从站点地图中加载每个网址并抓取更多数据
问题描述
我正在尝试加载在某个站点的站点地图上找到的所有链接,然后加载所有这些链接并获取更多数据(库存、尺寸及其 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
解决方案
在您的示例中间看到该评论吗?将该注释及其后的所有内容缩进 4 个空格。
推荐阅读
- html - SCSS 临时文件未编译为 css
- android - 等待几个流程完成后再继续
- java - Eclipse 中缺少“服务器”视图
- feed - GetStreamIO - 根据定义/特殊/自定义聚合创建提要
- asp.net - IIS ASP.NET 32 位应用程序池无法处理请求
- sql - 当列的顺序不同时创建一个 UNION ALL 查询
- flutter - 在 Flutter 中创建一个可实例化的 Widget 列表
- java - GSON MalformedJsonException 错误消息中的路径是什么?
- c# - 以编程方式添加到 DataGridView 的 ComboBox 直到单元格失去焦点然后再次单击后才会打开
- javascript - 如何在jquery中提交表单之前区分两次特定点击?