gpt4 book ai didi

python - 这个网站的价格是如何呈现的?

转载 作者:行者123 更新时间:2023-12-01 01:00:13 26 4
gpt4 key购买 nike

我需要一个蜘蛛来爬行这个网站():

我想让爬虫下载这个页面( https://search.suning.com/iphone/ )的产品信息,包括价格,但是我无法直接从这个页面获取。貌似这个页面的价格是异步渲染的,但是我找不到它是如何执行的。有人能帮我吗?谢谢。

我检查了 Chrome 开发者工具中的网络面板,但找不到它。

# just example , not done
class SuningSpider(scrapy.Spider):
name = "sn"
keyWord = "笔"
prefix = "https://"

def start_requests(self):
yield scrapy.Request(url="https://search.suning.com/%s/" % self.keyWord, callback=self.parse)

def parse(self, response):
logging.error(response.text)
selector = scrapy.Selector(response)


productLists = selector.xpath("//div[@id='product-list']/ul/li")

for p in productLists:
deatailUrl = p.css("div > div > div.res-info > div.title-selling-point > a::attr(href)")
# price = p.css("div > div > div.res-info > div.price-box > span > i:nth-child(1)::text")
s.xpath('//*[@id="0070130312-164968740"]/div/div/div[2]/div[1]/span/i[2]')
# //div[contains(@class,'foo')]
fullUrl = self.prefix + deatailUrl
yield scrapy.Request(url=deatailUrl, callback=)


def crawlDetailPage(self, response):
selector = scrapy.Selector(response)
price = selector.xpath('//*[@id="mainPrice"]/dl[1]/dd/span')

def finished(self, response):
item = DataItem()
item["url"] = response.url
selector = scrapy.Selector(response)

price = selector.xpath("")

最佳答案

价格异步呈现给 JavaScript 回调 (jsonp),您将看到这些请求发布到 ds.suning.com。不过,您可以通过更改请求的 url 来获取纯 json。当您向下滚动页面时,它们会被调用,因此您需要使用产品的 ids 动态构建这些 url

这将为您提供页面上前 5 个元素的价格:

from bs4 import BeautifulSoup
import requests
import json

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0'}

with requests.Session() as s:

baseurl = 'https://ds.suning.com/ds/generalForTile/000000010606656239_,000000000690128135_,000000010606649857_,000000010597840415_,000000010597840391_-010-2-0000000000-1--ds0000000002391.json'

url_fetch = s.get(baseurl, headers=headers).json()

print([rs['price'] for rs in url_fetch['rs']])

#['5588.00', '5988.00', '7188.00', '7688.00', '5188.00']

关于python - 这个网站的价格是如何呈现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55865435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com