以下是一个使用Python、Selenium和Chrome驱动的微博搜索和内容抓取的示例代码。请确保你已经安装了selenium库和chromedriver,并且将其放置在系统PATH中。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
# 初始化webdriver
driver = webdriver.Chrome()
# 打开微博首页
driver.get('https://weibo.com/')
# 等待搜索框加载完成
search_input = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, 'search_input'))
)
# 输入搜索关键词
search_input.send_keys('关键词')
# 提交搜索
search_input.send_keys(Keys.RETURN)
# 等待搜索结果加载完成
time.sleep(5) # 假设加载时间为5秒,实际可能需要更长
# 滚动页面加载更多博文
for i in range(3): # 假设只需要抓取3页的博文
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2) # 等待加载
# 获取博文链接并打开
blog_links = driver.find_elements_by_css_selector('.td-02 a')
for blog_link in blog_links:
blog_link.click()
time.sleep(2) # 等待博文加载
# 获取博文内容
blog_content = driver.find_element_by_css_selector('.article').text
print(blog_content)
# 返回博文列表页
driver.execute_script("window.history.go(-1)")
time.sleep(2)
# 关闭webdriver
driver.quit()
请注意,这个代码示例是为了展示如何使用Selenium和ChromeDriver来进行基本的网页操作和内容抓取。在实际应用中,你可能需要处理更多的细节,例如处理用户登录、处理无限滚动加载的博文、处理分页、处理反爬虫策略(如登录验证、验证码识别等)。