看到你的编辑,但以防万一,...
使用 selenium 的简单示例,为您提供 storytext
from selenium import webdriver
from bs4 import BeautifulSoup
browser = webdriver.Chrome('C:\Program Files\ChromeDriver\chromedriver.exe')
browser.get('https://www.fanfiction.net/s/5218118/1/')
soup=BeautifulSoup(browser.page_source, 'lxml')
print(soup.select_one('#storytext').get_text())
browser.close()
编辑
根据您的问题以及网站受到 cloudflare 保护以避免 ddos 攻击的事实进行编辑。
您可以通过 selenium 提取标签文本,但如上例所示,我使用 beautifulsoup
你是对的,用开发者工具检查html,标签部分是这样的:
<span class="xgray xcontrast_txt">
Rated: <a class="xcontrast_txt" href="https://www.fictionratings.com/" target="rating">Fiction T</a> - English - Romance/Adventure - Naruto U., Hinata H. - Chapters: 6 - Words: 14,894 - Reviews: <a href="/r/13747729/">5</a>
- Favs: 29 - Follows: 24 - Updated:
<span data-xutime="1610096566">33m ago</span>
- Published:
<span data-xutime="1605552788">Nov 16, 2020</span>
- id: 13747729
</span>
带有xgray xcontrast_txt 类的span,所以我们这样选择它:
tags = soup.select_one('span.xgray.xcontrast_txt').get_text(strip=True)
You may wanna know more about beautifulsoup?
示例
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
browser = webdriver.Chrome('C:\Program Files\ChromeDriver\chromedriver.exe')
browser.get('https://www.fanfiction.net/s/5218118/4/Yet-again-with-a-little-extra-help')
try:
# wait until certain element with id 'storytext' showed up
element = WebDriverWait(browser, 10).until(
EC.presence_of_element_located((By.ID, 'storytext'))
)
soup=BeautifulSoup(browser.page_source, 'lxml')
storytext = soup.select_one('#storytext').get_text()
tags = soup.select_one('span.xgray.xcontrast_txt').get_text(strip=True)
print(tags)
print(storytext)
finally:
browser.close()