初始化模块 导入selenium 库中 webdriver 相关模块,beautifulsoup4库中 BeautifulSoup模块 time模块和pymongo模块;初始化 Google Chrome浏览器和WebDriverWait 对象;连接MongoD数据库,并创建名为“b站”的数据库,爬取bilibili爱乐之城的评论
时间: 2024-04-01 20:38:13 浏览: 71
python爬虫开发之selenium模块详细使用方法与实例全解
好的,你的问题是如何初始化模块并爬取bilibili爱乐之城的评论。下面是一个Python代码示例,可供参考:
```
import time
from bs4 import 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 pymongo import MongoClient
# 初始化Google Chrome浏览器和WebDriverWait对象
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 10)
# 连接MongoDB数据库
client = MongoClient('localhost', 27017)
db = client['b站']
# 爬取评论
url = 'https://www.bilibili.com/video/BV1w4411y7Rf/'
driver.get(url)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#comment')))
for i in range(1, 4):
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
time.sleep(5)
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
comments = soup.select('.comment-list .text')
# 存储评论到MongoDB
for comment in comments:
data = {
'comment': comment.get_text().strip(),
}
db['comments'].insert_one(data)
# 关闭浏览器和MongoDB连接
driver.quit()
client.close()
```
这段代码使用了selenium库中的webdriver模块和WebDriverWait模块来初始化浏览器和等待页面加载。使用beautifulsoup4库中的BeautifulSoup模块来解析HTML页面。使用pymongo库来连接MongoDB数据库并存储数据。
在上面的代码中,我们首先初始化了Chrome浏览器和WebDriverWait对象,并连接到MongoDB数据库。然后,我们使用Selenium模拟浏览器访问爱乐之城视频页面,并滚动页面,等待评论加载完成。接下来,我们使用BeautifulSoup解析HTML页面,获取评论内容,并将其存储到MongoDB数据库中。最后,我们关闭浏览器和MongoDB连接。
注意,这段代码只是一个示例,实际应用中需要根据具体的需求进行修改。
阅读全文