要爬取JS渲染的网站,可以使用无头浏览器来模拟浏览器行为,并获取完全加载后的页面内容。无头浏览器可以在后台运行,不需要GUI界面。
以下是使用Python和无头浏览器库Selenium来爬取JS渲染的网站的示例代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 创建 ChromeOptions 对象,设置无头模式
options = Options()
options.add_argument('--headless') # 无头模式
# 初始化 Chrome WebDriver
driver = webdriver.Chrome(options=options)
# 打开网页
driver.get('https://example.com')
# 等待页面加载完成
driver.implicitly_wait(10)
# 获取完全加载后的页面内容
page_content = driver.page_source
# 关闭浏览器
driver.quit()
# 处理页面内容
# ...
上述代码中,首先创建了一个 ChromeOptions
对象,并设置 --headless
参数来启用无头模式。然后,使用 webdriver.Chrome
初始化了一个 Chrome WebDriver 对象。接下来,通过 get
方法打开目标网页,并使用 implicitly_wait
方法等待页面加载完成。最后,使用 page_source
属性获取完全加载后的页面内容。
你需要安装相应的依赖库,例如 Selenium 和 Chrome WebDriver,以及 Chrome 浏览器本身。
请注意,使用无头浏览器爬取网站可能会导致网站服务器认为你是一个自动化爬虫而禁止访问。在爬取网站时,请遵守网站的使用条款和爬虫规则。