Използвам Красива супа, за да изтрия страниците, опитвайки се да достигна височината на някои спортисти:
req = requests.get(url)
soup = BeautifulSoup(req.text, "html.parser")
height = soup.find_all("strong")
height = height[2].contents
print height
За съжаление това се връща:
[Ф "6" 0 ""]
Аз също се опитах:
height = str(height[2].contents)
и
height = unicode(height[2].contents)
но все още получавам [u "6" 0 "] като резултат.
Как мога да получа 6 "0" без допълнителни знаци? Благодаря за вашата помощ!
Отговори:
0 за отговор № 1Това не са допълнителни знаци. .contents
връща списъкелементът, който сте избрали, има само едно дете, така че вие получавате списък, съдържащ един елемент.
Може би искате .string
?
0 за отговор № 2
Ако искаш само третата силен , който не е нужно да намирате всички, можете да използвате css селектора nth-of-type
, след като имате елемента, който просто трябва да се обадите .text
:
req = requests.get(url)
soup = BeautifulSoup(req.content, "html.parser")
height = soup.select_one("strong:nth-of-type(3)").text
print(height)
Вие също трябва да се обаждате .content
, оставяйки заявките да обработват кодирането.