我知道如何从孩子那里得到父母,但我如何从父母那里得到孩子:
aaa = soup.findAll(string=re.compile('Last 30 days'))
Views = aaa[0].findParent().text
以上是我的父母。但如果我这样做:
aaa = soup.findAll(string=re.compile('Last 30 days'))
Views = aaa[0].findChild().text
它不起作用并出现错误' NavigableString'对象没有属性" findChild。 任何帮助将不胜感激,谢谢
答案 0 :(得分:0)
按div
过滤掉必要的class = sidebar sbt
。使用get_text()
获取每个div
的文本,并检查此div
是否包含您的必要信息。然后查找p
以排除不必要的texts
,使用get_text()
并删除多余的空格和新行。按空格分割字符串并获取列表中的3个元素列表。再次加入以获得所需的string
。
N.B:可能有更简单的方法来处理string
。
import requests
from bs4 import BeautifulSoup
url = "http://www.zoopla.co.uk/for-sale/details/44118383?search_identifier=e31406ce57c4397baa6701b11e7cdab1"
html = requests.get(url)
soup = BeautifulSoup(html.text, "lxml")
divs = soup.find_all("div", class_="sidebar sbt")
for div in divs:
text = div.get_text().lower()
if(text.find("first listed") > -1):
text = div.find("p").get_text()
text = text.replace("\n","",10)
text = text.strip()
text_list = text.split()[-3:]
text = " ".join(text_list)
print(text)
break
如果您需要First Listed零件的全部string
,请避免拆分和加入。