我试图在网站上解析一个特定的“项目”,但我不知道它是一个类,对象,id还是别的什么
我的代码:
soup = BeautifulSoup(urllib2.urlopen(myURL))
divdata = soup.find('div')
print(divdata)
它返回:
<div data-store='{"Auth":{"cookie":null,"user":null,"timestamp":1485297666762},"Blocked":{},"Broadcast":
{"forceUpdate":false,"failed":[],"pending":[],"error":
{"isNotFound":false,"isServerError":false,"isUnavailable":false}},"BroadcastCache":{"broadcasts":{"ID1":{"broadcast":
{"data":{"class_name":"Broadcast","id":"ID1","state":"running,
....(more)....
所以我想要检索“正在运行”或者处于“状态”的状态 我试过了
statedata = soup.find('div', {"class":"state"})
但它什么都没有返回,检索它的正确方法是什么?
答案 0 :(得分:0)
import json
div_tag = soup.find('div', {'data-store':True})
data_string = div_tag['data-store'] # get data string
json.loads(data_string)['BroadcastCache']['broadcasts']['ID1']['broadcast']['data']['state'] # convert data string to python dict and get state
出:
'running'
答案 1 :(得分:-1)
正确的语法是soup.find_all('div', class_='state')
。
请注意class_
之后的下划线。
在没有修改的情况下,它不太适合你的情况,因为看起来div的实际类是'data-store',其余只是一个字符串而不是标签的实际内容。你可以在那个上使用string.find('\"state\"')
。