簡體   English   中英

python bs4,如何在html中抓取此文本?

[英]python bs4, how to scrape this text in html?

網站網址: https ://n.news.naver.com/mnews/article/421/0006111920

我想在下面的 html 上刮掉“5”。

我使用了這個代碼:soup.select_one('span.u_likeit_text._count').get_text()

結果是'추천'

html代碼

<span class="u_likeit_text _count num">5</span>

這里的主要問題是計數是由JavaScript動態生成的,而不是在response中出現,所以你的soup

您可以使用selenium像瀏覽器一樣呈現頁面,並將driver.page_source轉換為BeautifulSoup對象:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
import time

driver = webdriver.Chrome(ChromeDriverManager().install())

driver.get("https://n.news.naver.com/mnews/article/421/0006111920")
time.sleep(3)

soup = BeautifulSoup(driver.page_source, 'html.parser')

soup.select_one('span.u_likeit_text._count').get_text()

輸出:

8

您必須使用空格分隔類,而不是通過點連接。

from bs4 import BeautifulSoup

soup = BeautifulSoup("<span class='u_likeit_text _count num'>5</span>", 'html.parser')
print(soup)
seven_day = soup.find_all("span" , class_="u_likeit_text _count num")
print(seven_day[0].text)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM