playwright Python或者C#获取select并设置值为2 ,select id是动态的,麻烦各位大神,感谢
代码如下。
现知道从浏览器复制xpath为://[@id="cart-items-item-3da31afc-4312-4b5c-a264-a7b773cf69bc-itemQuantity"]
或者取上级://[@id="bag-content"]/ol/li[2]/div/div[2]/div[1]/div[2]/div/div/div
请问有没有更好,更灵活的方式,获取select,并赋值?
<ol class="rs-bag-items rs-iteminfos" role="list" data-autom="bag-items">
<li class="rs-bag-item rs-iteminfo-wrap" data-autom="bag-item-1" role="listitem">
<div class="rs-iteminfo row" tabindex="-1">
<div class="rs-iteminfo-image column large-3 small-12" aria-hidden="true">
div>
<div class="rs-iteminfo-content column large-9 small-12">
<div class="rs-iteminfo-details">
<div class="rs-iteminfo-title-wrapper large-6 small-12">
div>
<div class="rs-iteminfo-quantity">
<div class="rs-quantity">
<div class="rs-quantity-selector">
<div class="rs-quantity-wrapper form-dropdown">
<select class="rs-quantity-dropdown form-dropdown-select" id="cart-items-item-80874213-8b1b-439c-bb1c-935555d07743-itemQuantity" data-autom="item-quantity-dropdown">
<option value="1" aria-label="1 , 数量">1option>
<option value="2" aria-label="2 , 数量">2option>
select>
div>
div>
div>
<div class="rs-iteminfo-pricedetails large-last"><div class="rs-iteminfo-price"><p>RMB 1,999p>div>div>
div>
div>
div>
div>
li>
<li class="rs-bag-item rs-iteminfo-wrap" data-autom="bag-item-2" role="listitem">
<div class="rs-iteminfo row" tabindex="-1">
<div class="rs-iteminfo-image column large-3 small-12" aria-hidden="true">
div>
<div class="rs-iteminfo-content column large-9 small-12">
<div class="rs-iteminfo-details">
<div class="rs-iteminfo-title-wrapper large-6 small-12">
div>
<div class="rs-iteminfo-quantity">
<div class="rs-quantity">
<div class="rs-quantity-selector">
<div class="rs-quantity-wrapper form-dropdown">
<select class="rs-quantity-dropdown form-dropdown-select" id="cart-items-item-3da31afc-4312-4b5c-a264-a7b773cf69bc-itemQuantity" data-autom="item-quantity-dropdown">
<option value="1" aria-label="1 , 数量">1option>
<option value="2" aria-label="2 , 数量">2option>
select>
div>
div>
div>
<div class="rs-iteminfo-pricedetails large-last"><div class="rs-iteminfo-price"><p>RMB 1,999p>div>div>
div>
div>
div>
div>
<li>
ol>
不知道你这个问题是否已经解决, 如果还没有解决的话:在我们的爬虫里,用了xpath来提取html里的标签和内容,在这里我将用例子说明xpath的用法。
首先,我们要分析网页源代码,找出我们要获取的数据的位置,如下图红框部分便是图片的部分url链接,我们的任务就是把它提取出来。
通过观察我们发现,它是class="box"的div下的a标签下的img的src属性的值,我们要得到它,写法如下:
img_srcs = response.xpath('//div[@class='box']/div/a/img/@src').extract()
其中//代表相对路径,[@class="box"]
指明了div的class名(选取div时要选有代表性的,能定位到你需要的数据),我们便可以在网页的源码中定位到所有网页图片相似的位置,通过@我们可以获取src属性的值,.extract()返回含有网页图片链接信息的数组。