使用pycharm和scrapy框架https://movie.douban.com/top250进行爬虫并保存至excel
时间: 2024-11-20 17:41:07 浏览: 12
IDEA遇到Internal error. Please refer to http://jb. gg/ide/critical-startup-errors的问题及解决办法
使用PyCharm和Scrapy框架进行豆瓣电影Top250的爬虫,并将其结果保存到Excel文件,可以按照以下步骤操作:
1. **安装依赖**:
- 首先确保已经安装了Python、Scrapy、requests和pandas库。如果还没有安装,可以在终端中运行以下命令:
```
pip install scrapy requests pandas openpyxl
```
2. **创建Scrapy项目**:
- 打开PyCharm,点击"Create New Project",选择"Scrapy"模板,给项目命名,然后完成创建。
3. **编写Spider**:
- 在`spiders`目录下新建一个Python文件,比如` douban_spider.py`。在这个文件里,定义Scrapy Spider:
```python
import scrapy
from scrapy.http import Request
class DoubanTop250Spider(scrapy.Spider):
name = 'douban_top250'
start_urls = ['https://movie.douban.com/top250']
def parse(self, response):
for movie in response.css('div.item'):
title = movie.css('span.title a::text').get()
rating = movie.css('.rating_num strong::text').get()
yield {
'title': title,
'rating': rating,
}
def __init__(self):
super().__init__()
# 如果你想每页都抓取,保留此行;否则,可以删除,仅抓取第一页
self.start_urls.append(response.urljoin('https://movie.douban.com/top250?start=25'))
```
4. **设置下载中间件处理反爬策略**:
- 在`settings.py`中添加对`RobotsTxtMiddleware`的支持,以及配置下载延迟以避免过于频繁地请求服务器:
```python
ROBOTSTXT_OBEY = True
DOWNLOAD_DELAY = 2 # 设置每次请求之间的延迟时间
```
5. **运行爬虫并保存数据**:
- 在PyCharm的Scrapy插件中,选择刚刚创建的项目,然后运行`scrapy crawl douban_top250`。爬虫会开始抓取数据,完成后,数据会被存储在`items`目录下的`.json`文件中。
6. **读取数据并转存为Excel**:
- 使用pandas读取爬取的数据,然后写入Excel:
```python
import json
import pandas as pd
# 加载json数据
with open('douban_top250.json', 'r', encoding='utf-8') as f:
data = json.load(f)
df = pd.DataFrame(data)
df.to_excel('douban_movie_data.xlsx', index=False)
```
阅读全文