用python在豆瓣读书网爬取数据并存储到mongodb中
时间: 2024-06-08 10:11:09 浏览: 182
好的,我可以给你提供一个大致的思路:
1. 安装selenium和pymongo库
```
pip install selenium pymongo
```
2. 下载Chrome浏览器和相应版本的chromedriver,并配置环境变量
3. 使用selenium模拟浏览器打开豆瓣读书网站,并搜索需要的书籍,获取搜索结果页面的源代码
```python
from selenium import webdriver
# 打开浏览器
driver = webdriver.Chrome()
# 打开网页
url = "https://book.douban.com/"
driver.get(url)
# 搜索书籍
keyword = "Python"
search_box = driver.find_element_by_xpath("//input[@name='search_text']")
search_box.send_keys(keyword)
search_box.submit()
# 获取搜索结果页面的源代码
page_source = driver.page_source
# 关闭浏览器
driver.quit()
```
4. 使用BeautifulSoup解析页面源代码,获取需要的数据
```python
from bs4 import BeautifulSoup
# 解析页面源代码
soup = BeautifulSoup(page_source, "html.parser")
# 获取书籍列表
book_list = soup.find_all("li", class_="subject-item")
# 遍历书籍列表,获取书籍信息
for book in book_list:
# 获取书名
title = book.find("h2").a["title"]
# 获取评分
rating = book.find("span", class_="rating_nums").get_text()
# 获取出版信息
pub_info = book.find("div", class_="pub").get_text().strip()
# 存储数据到数据库
db.books.insert_one({"title": title, "rating": rating, "pub_info": pub_info})
```
5. 将数据存储到MongoDB中
```python
from pymongo import MongoClient
# 连接MongoDB数据库
client = MongoClient("mongodb://localhost:27017/")
db = client["douban"]
# 存储数据到数据库
for book in book_list:
# 获取书籍信息
...
# 存储数据到数据库
db.books.insert_one({"title": title, "rating": rating, "pub_info": pub_info})
```
以上是一个简单的爬虫程序,可以根据自己的需求进行修改和优化。另外需要注意的是,爬取网站数据需要遵守网站的相关规定和法律法规,不得进行恶意爬取和商业利用。
阅读全文