2017-06-19 79 views
1
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中返回美麗的湯蟒蛇3個CSS困擾

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

我很新的這一點,所以我不知道我做錯了,其他CSS的事情,沒有 ' - ' 在他們做工精細

+0

什麼是JS-註冊? – Exprator

回答

2

使用python,p.js-signup是減法p.js減去signup。它會引發你有錯誤,因爲signup不存在。

NameError: name 'signup' is not defined 

如果你想<js-lookup>你必須使用find()documentation作爲解釋得到的元素。

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

+0

這樣的你喜歡這個意思嗎? 'print(p.find(id ='js-signup'))' – ChickenRun

+0

謝謝,它工作:) – ChickenRun

2

代碼p.js-signup意味着:

p.js - signup 

所以你試圖從p.js減去signup,但是代碼中沒有變量signup,這就是錯誤信息告訴你的。

+0

我看到了,但是當我SelectorGadget(http://selectorgadget.com/)選擇一個CSS選擇器時,它給了我'.js-signup',所以我不知道如何在bs4中使用它 – ChickenRun

+1

如果你想選擇所有具有特定類名的元素都使用'p.find_all(class _ ='js-signup')' – ikkuh