【问题标题】:BeatifulSoup and requests returning "None"BeautifulSoup 和请求返回“无”
【发布时间】:2020-11-03 17:08:23
【问题描述】:

我是 bs4 和请求的新手,我正在尝试在亚马逊上搜索一些随机产品的价格(在本例中为生态点 3)。我不明白为什么我的网络爬虫在运行时总是返回“无”。显然我正在寻找的元素是存在的,但是当我尝试使用 find 功能时它仍然不起作用。 我不知道它是否有帮助,但这是我正在关注的教程: https://www.youtube.com/watch?v=Bg9r_yLk7VY&t=594sThank你好!这也是我的代码

from bs4 import BeautifulSoup


URL = 'https://www.amazon.de/dp/B07NQCVHQ6/ref=gw_de_desk_h1_aucc_db_dbckpscs_qh_0520_v1_t1?pf_rd_r=WY9A7Y14N1T2NGG5KT9S&pf_rd_p=56ce1aab-22bc-4377-bb24-b13391bb0efd'
headers = {"User-Agent": 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}

page = requests.get(URL, headers=headers)

soup = BeautifulSoup(page.content, 'html.parser')

price = soup.find(id="priceblock_ourprice")
print(price)

我不知道它是否有帮助,但这是我正在关注的教程: https://www.youtube.com/watch?v=Bg9r_yLk7VY&t=594s

【问题讨论】:

    标签: python web-scraping beautifulsoup python-requests


    【解决方案1】:

    您需要进行简单的更改 改变这个:

    soup = BeautifulSoup(page.content, 'html.parser')
    

    soup = BeautifulSoup(page.content, 'lxml')
    

    输出:

    <span class="a-size-medium a-color-price priceBlockBuyingPriceString" id="priceblock_ourprice">48,73 ?</span>
    

    还有:

    print(price.text)
    

    只给你价格

    关于解析器的区别,可以看官网--https://www.crummy.com/software/BeautifulSoup/bs4/doc/#differences-between-parsers

    或者在这个问题中,有解释-Beautiful Soup and Table Scraping - lxml vs html parser

    【讨论】:

    • 虽然此代码可能会解决问题,但 including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的答案添加解释并说明适用的限制和假设。
    猜你喜欢
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多