【问题标题】:Beautiful soup python 3 css troubles美汤python 3 css的烦恼
【发布时间】:2017-11-21 15:53:06
【问题描述】:
import bs4
import requests
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'}
url = 'http://twitter.com'
r = requests.get(url, headers=headers)
p = bs4.BeautifulSoup(r.text, 'html.parser')
p.js-signup

当我将p.js-signup 放入 python shell 时,它会返回

Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
p.js-signup
NameError: name 'signup' is not defined

我对此很陌生,所以我不确定我做错了什么,其他没有'-'的css东西可以正常工作

【问题讨论】:

  • 什么是js-signup??

标签: python css python-3.x bs4


【解决方案1】:

对于 python,p.js-signup 是运算 p.js 减去 signup。它会引发您遇到的错误,因为signup 不存在。

NameError: name 'signup' is not defined

如果您想获取元素&lt;js-lookup&gt;,您必须使用find(),如documentation 中所述。

如果 js-lookup 是 CSS 类:https://www.crummy.com/software/BeautifulSoup/bs4/doc/#searching-by-css-class

【讨论】:

  • 啊,你是说这样吗? print(p.find(id='js-signup'))
【解决方案2】:

代码p.js-signup的含义如下:

p.js - signup

所以您试图从p.js 中减去signup,但您的代码中没有变量signup,这就是错误消息告诉您的内容。

【讨论】:

  • 我明白了,但是当我 SelectorGadget (selectorgadget.com) 选择一个 CSS 选择器时,它给了我 '.js-signup' 所以我不知道如何在 bs4 中使用它
  • 如果要选择具有特定类名的所有元素,请使用p.find_all(class_='js-signup')
猜你喜欢
  • 1970-01-01
  • 2021-11-19
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-12
  • 1970-01-01
相关资源
最近更新 更多