Scrapy xpath选择器不会选择所有HTML标记
我正在尝试使用Scrapy python库来获取所有产品名称 这是我的解析函数Scrapy xpath选择器不会选择所有HTML标记,html,xpath,web-scraping,scrapy,Html,Xpath,Web Scraping,Scrapy,我正在尝试使用Scrapy python库来获取所有产品名称 这是我的解析函数 def parseWalmart(自我,响应): 打印(“内部解析沃尔玛”) 对于响应中的产品.xpath('//div[@id=“searchProductResult”]/div[@class=“search result listview items”]//div[以(@data tl id,“ProductTileListView-”)开头]): 印刷品(产品) product_name=product.x
def parseWalmart(自我,响应):
打印(“内部解析沃尔玛”)
对于响应中的产品.xpath('//div[@id=“searchProductResult”]/div[@class=“search result listview items”]//div[以(@data tl id,“ProductTileListView-”)开头]):
印刷品(产品)
product_name=product.xpath('.//div[contains(@class,“搜索结果产品标题列表视图”)]//a//span//text()')。extract()
product_page=product.xpath('.//div[contains(@class,“搜索结果产品标题列表视图”)]///a/@href').extract()
产品名称=“加入(产品名称)
打印(产品名称)
打印(“------------------------------------”
因为DOM中最初只有4个以“ProductTileListView-”开头的div。但是,您可以在页面的脚本中找到所有产品信息
以下是我如何获得产品的所有信息
进口稀土
导入json
data=re.findall(“\'items\”:(.+?),“secondaryItems\”,response.body.decode(“utf-8”),re.S)
products\u json=json.loads(数据[0])
len(ls)#返回20
请注意,products数组以“items”开头,以“secondaryItems”结尾
一种产品的结构
{
“产品ID”:“2H53I08Z1K78”,
“usItemId”:“23422902”,
“产品类型”:“常规”,
“标题”:“看门狗(PS3)”,
....
“imageUrl”:https://i5.walmartimages.com/asr/70aecbb1-5dbf-4a64-a86d-134a8fc7edee_2.59805d79db07665c20cc4e4fadc35743.jpeg?odnHeight=180&odnWidth=180&odnBg=ffffff",
“productPageUrl”:“/ip/Watch-Dogs-PS3/23422902”,
“upc”:“0000888834804”,
}
我在@darbulix的GET请求中没有看到json“items”,我相信屏幕截图说明了您需要的一切。我是说,我不了解您在开发工具上获得的东西。我知道如何使用inspector,但当我进入网络时,我无法确切了解您在响应中获得的东西。您是否可以浏览一下达到这一点所采取的步骤?找到正确的文档,这正是服务器返回的文档。如果文档为空,则强制浏览器重新加载页面中的所有资源。你可能想把它打印出来。