怎么使用scrapy爬取boss直聘上的数据并保存为csv文件详解
时间: 2024-06-09 10:10:47 浏览: 264
Scrapy 是 Python 中一个强大的爬虫框架,可以用来爬取各种网站的数据。本文将介绍如何使用 Scrapy 爬取 Boss 直聘网站上的数据,并将数据保存为 CSV 文件。
## 1. 创建 Scrapy 项目
首先,我们需要创建一个 Scrapy 项目。在命令行中输入以下命令:
```
scrapy startproject bosszp
```
这个命令会在当前目录下创建一个名为 `bosszp` 的 Scrapy 项目。
## 2. 创建爬虫
接下来,我们需要创建一个爬虫。在命令行中输入以下命令:
```
cd bosszp
scrapy genspider jobspider zhipin.com
```
这个命令会在 `bosszp/spiders` 目录下创建一个名为 `jobspider` 的爬虫,并且指定了要爬取的网站为 `zhipin.com`。
## 3. 编写爬虫代码
打开 `bosszp/spiders/jobspider.py` 文件,我们需要编写爬虫的代码。
```python
import scrapy
class JobspiderSpider(scrapy.Spider):
name = 'jobspider'
allowed_domains = ['zhipin.com']
start_urls = ['https://www.zhipin.com/c101280100-p100109/?ka=sel-city-101280100']
def parse(self, response):
for job in response.css('.job-primary'):
yield {
'title': job.css('.job-title::text').get(),
'salary': job.css('.red::text').get(),
'company': job.css('.company-text .name a::text').get(),
'location': job.css('.info-primary p::text').get(),
'experience': job.css('.info-primary p::text')[1].get(),
'education': job.css('.info-primary p::text')[2].get()
}
next_page = response.css('.next::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
```
这个爬虫会从 `start_urls` 中的网址开始爬取数据。我们使用了 CSS 选择器来提取数据,具体可以参考注释。
## 4. 保存数据为 CSV 文件
最后一步,我们需要将爬取到的数据保存为 CSV 文件。在命令行中输入以下命令:
```
scrapy crawl jobspider -o jobs.csv
```
这个命令会运行我们刚才编写的爬虫,并将爬取到的数据保存为 `jobs.csv` 文件。
## 总结
通过这篇文章,我们学习了如何使用 Scrapy 爬取 Boss 直聘网站上的数据,并将数据保存为 CSV 文件。希望这篇文章对你有所帮助!
阅读全文