【问题标题】:How to find specific class when webscraping with bs4?使用bs4进行网络抓取时如何找到特定的类?
【发布时间】:2020-12-26 14:09:06
【问题描述】:

我正在尝试编写一个抓取工具,用于抓取网站上产品的产品 ID。

import requests
from bs4 import BeautifulSoup

URL = 'https://stockx.com/de-de/air-jordan-1-retro-high-dark-mocha'
headers = {
    'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36'
}


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

soup = BeautifulSoup(r.text, 'html.parser')

soup.find('div', {'class':'detail'})
print(soup)

我想访问 class="detail",但是当执行它时它给了我整个站点的 html? 我做错了什么?

【问题讨论】:

    标签: python web web-scraping beautifulsoup python-requests


    【解决方案1】:

    出了什么问题

    • 你分配了soup 这样soup = BeautifulSoup(r.text, 'html.parser') 所以它正在打印整个html
    • 您想要分配和打印详细信息元素: detail = soup.find('div', {'class':'detail'})

    试试这个:

    import requests
    from bs4 import BeautifulSoup
    
    URL = 'https://stockx.com/de-de/air-jordan-1-retro-high-dark-mocha'
    headers = {
        'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36'
    }
    
    
    r = requests.get(URL, headers=headers)
    
    soup = BeautifulSoup(r.text, 'html.parser')
    
    detail = soup.find('div', {'class':'detail'})
    print(detail)
    

    【讨论】:

    • 非常好,谢谢!但是我上面的代码有什么问题?
    • @VenomVenom:看看我的回答中的出了什么问题
    • 哦,现在我明白了。我只需要为细节创建另一个元素。再次感谢:)
    • 是的,我会的。只是 StackOverflow 允许它在 10 分钟内完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 2021-06-01
    • 2020-07-06
    • 1970-01-01
    • 2021-05-01
    • 2019-02-12
    • 1970-01-01
    相关资源
    最近更新 更多