小编Mig*_*ana的帖子

亚马逊图书 ISBN 的间歇性 BeautifulSoup

我正在尝试收集有关 Amazon 上某些可用书籍的一些信息,但遇到了一个我无法理解的奇怪故障错误。起初我以为是亚马逊阻止了我的连接,但后来我注意到请求有一个“200 OK”,并且它具有相应页面的真实 HTML 内容。

我们以这本书为例:https : //www.amazon.co.uk/All-Rage-Cara-Hunter/dp/0241985110

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}

url = 'https://www.amazon.co.uk/All-Rage-Cara-Hunter/dp/0241985110/ref=sr_1_1?crid=2PPCQEJD706VY&dchild=1&keywords=books+bestsellers+2020+paperback&qid=1598132071&sprefix=book%2Caps%2C234&sr=8-1'

response = requests.get(url, headers=headers)

soup = BeautifulSoup(response.content, features="lxml")

price = {}

if soup.select("#buyBoxInner > ul > li > span > .a-text-strike") != []:
    price["regular_price"] = float(
        soup.select("#buyBoxInner > ul > li > span > .a-text-strike")[0].string[1:].replace(",", "."))
    price["promo_price"] = float(soup.select(".offer-price")[0].string[1:].replace(",", "."))
else:
    price["regular_price"] = float(soup.select(".offer-price")[0].string[1:].replace(",", "."))
price["currency"] = soup.select(".offer-price")[0].string[0]
Run Code Online (Sandbox Code Playgroud)

这部分工作正常,我可以有正常价格和促销价格(如果存在),甚至是货币。但是当我这样做时:

isbn = soup.select("td.bucket …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup python-requests

3
推荐指数
1
解决办法
70
查看次数

jQuery .val()返回空字符串

我试图在每次更新时对列表的值求和.所以为此,我有这个函数,每次表插入或删除一行时都会执行,但是现在,它只是将值发送到控制台:

function update_price(){
  $("#table-content tr td:nth-child(3)").each(function() {
    console.log($(this).find("div").val());
  });
}
Run Code Online (Sandbox Code Playgroud)

与之关联的HTML代码如下所示:

<tbody id="table-content">
     <tr class="table-content-line">
        <td>9789898818386</td>
        <td>Fale Menos, Comunique Mais</td>
        <td>
            <div class="form-group">
                <input type="number" data-number-to-fixed="2" data-number-stepfactor="1" class="auto form-control price" value="12" step=".01">
            </div>
        </td>
        <td>2</td>
        <td>
            <span class="remove-action">
                <i class="fa fa-times-circle"></i>
            </span>
        </td>
     </tr>
     ...
</tbody>
Run Code Online (Sandbox Code Playgroud)

由于一些奇怪的原因,当我使用.html()而不是时.val(),它返回用户输入的HTML代码,但是当我使用时不会发生同样的情况.val().

如果您有任何建议,请告诉我,也许我做错了什么,我还没有检查.

谢谢,
mikeysantana

html javascript jquery

-1
推荐指数
1
解决办法
326
查看次数