scrapy 爬取boss直聘it行业招聘信息
时间: 2023-09-28 22:07:40 浏览: 165
本文介绍如何使用 Scrapy 爬取 boss 直聘 IT 行业的招聘信息。
1. 创建 Scrapy 项目
在命令行中输入以下命令创建 Scrapy 项目:
```
scrapy startproject boss
```
2. 创建爬虫
在命令行中进入项目目录,输入以下命令创建爬虫:
```
scrapy genspider boss_it www.zhipin.com
```
3. 修改爬虫代码
打开 `boss_it.py` 文件,修改 `allowed_domains` 和 `start_urls`:
```python
class BossItSpider(scrapy.Spider):
name = 'boss_it'
allowed_domains = ['www.zhipin.com']
start_urls = ['https://www.zhipin.com/c101280100/?query=IT']
def parse(self, response):
pass
```
4. 解析数据
使用 Chrome 浏览器打开 boss 直聘网站,搜索 IT 行业的招聘信息。在浏览器中按 F12 打开开发者工具,切换到 Network 标签页。
在搜索结果页面中选择一个招聘信息,可以看到有一个请求 URL,复制它的 URL,然后打开新的标签页,在地址栏中输入该 URL,回车后可以看到该招聘信息的详细页面。
在开发者工具中切换到 Network 标签页,可以看到该页面的请求 URL,复制它的 URL,然后在 Scrapy 中发送该请求并解析数据。
在 `parse` 方法中添加以下代码:
```python
def parse(self, response):
job_list = response.xpath('//div[@class="job-list"]/ul/li')
for job in job_list:
job_url = job.xpath('./div[1]/div[1]/a/@href').extract_first()
yield scrapy.Request(url=job_url, callback=self.parse_job)
next_page = response.xpath('//a[@class="next"]/@href')
if next_page:
next_page_url = response.urljoin(next_page.extract_first())
yield scrapy.Request(url=next_page_url, callback=self.parse)
def parse_job(self, response):
item = BossItem()
item['job_title'] = response.xpath('//h1/text()').extract_first()
item['salary'] = response.xpath('//div[@class="job-primary detail-box"]/div[2]/span/text()').extract_first()
item['city'] = response.xpath('//div[@class="job-primary detail-box"]/div[1]/p/text()[1]').extract_first()
item['experience'] = response.xpath('//div[@class="job-primary detail-box"]/div[1]/p/text()[2]').extract_first()
item['education'] = response.xpath('//div[@class="job-primary detail-box"]/div[1]/p/text()[3]').extract_first()
item['job_description'] = response.xpath('//div[@class="job-sec"]/div[1]/div[1]/text()').extract()
yield item
```
5. 定义数据模型
在 `items.py` 文件中定义数据模型:
```python
class BossItem(scrapy.Item):
job_title = scrapy.Field()
salary = scrapy.Field()
city = scrapy.Field()
experience = scrapy.Field()
education = scrapy.Field()
job_description = scrapy.Field()
```
6. 启动爬虫
在命令行中输入以下命令启动爬虫:
```
scrapy crawl boss_it -o boss.csv
```
7. 查看结果
爬虫运行结束后,可以看到一个名为 `boss.csv` 的文件,它包含了爬取的招聘信息。
阅读全文