【问题标题】:Python beautifulsoup 4 selecting a classPython beautifulsoup 4 选择类
【发布时间】:2017-08-20 21:11:58
【问题描述】:

我正在尝试制作一个自动购买运动鞋的工具。我正在尝试在线检查运动鞋的可用性。我是编程新手,这是我的第一个项目。谢谢。

def CheckStock(url, model):
  url = "http://www.adidas.com/us/pureboost-ltd-shoes/S80701.html?pr=product_rr&slot=3"
  headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
  html = requests.get(url, headers=headers)
  page = bs4.BeautifulSoup(html.text, "lxml")
  Sizes = page.select('.size-dropdown-block')
  Sizes[0].getText()

我知道该页面正在被选中,因为我使用了命令 page.title.string 并且它显示了正确的标题。尝试执行 Sizes 时出现以下错误。

Traceback (most recent call last):
  File "<pyshell#146>", line 1, in <module>
    x[0].getText()
IndexError: list index out of range

【问题讨论】:

  • 该功能适用​​于我,请求 2.13.0,bs4 4.5.3。 x 是什么?
  • 尺寸[0].getText()。抱歉,忽略 x 只是我测试多个代码的另一个实例。
  • 请向我们展示所有相关代码。你如何初始化x?究竟是什么导致了错误?
  • 这是我的代码,我使用的是 Python shell。我执行 Sizes[0].getText() x 只是 Sizes。我不确定是什么导致了这个错误,对不起 python 和编程新手

标签: python html web-scraping beautifulsoup lxml


【解决方案1】:

大小是蓝色的(它可能是一个函数/方法现在使用不同的名称) 检查源代码中是否存在 (.size-dropdown-block)。 CTRL+U(大多数浏览器)或右键单击 > 查看页面源代码。 它可能是 javascript 生成的。如果是这样,您将不得不使用 Selenium 或其他自动浏览器。

【讨论】:

    猜你喜欢
    • 2021-08-02
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    相关资源
    最近更新 更多