scrapy实战一:爬取boss直聘信息,存入mysql数据库

使用Scrapy 1.5和Python 3.6在Windows环境下,创建项目爬取Boss直聘的职位名称、工资、公司名称和地点,数据存储到MySQL数据库中。涉及items定义、spider编写、pipeline处理及数据库表结构设计。
摘要由CSDN通过智能技术生成

scrapy版本:1.5

python版本:3.6

系统:windows

网站链接: www.zhipin.com

1 创建项目

CTRL+R 输入cmd打开DOS窗口,输入如下命令创建项目(可自定义项目位置)

scrapy startproject job_demo   

从图片中可以看到,你可以进入你的项目然后创建你的spider

cd Job_demo

新建spider蜘蛛

scrapy genspider job www.zhipin.com


2 编写项目

整个项目的结构如下


在爬去之前,我们先要明确好,需要爬取得东西,以python

以下是一个简单的爬取boss直聘上海地区职位信息并导出excel表格的示例代码: ```python import scrapy import json import pandas as pd class BossSpider(scrapy.Spider): name = 'boss' allowed_domains = ['www.zhipin.com'] start_urls = ['https://www.zhipin.com/c101020100-p100101/'] def parse(self, response): # 获取职位信息列表 jobs = response.xpath('//div[@class="job-list"]/ul/li') for job in jobs: # 解析职位信息 job_title = job.xpath('./div[@class="job-title"]/text()').get() company_name = job.xpath('./div[@class="company-text"]/h3/a/text()').get() salary = job.xpath('./div[@class="job-limit clearfix"]/span/text()').get() job_url = job.xpath('./div[@class="info-primary"]/h3/a/@href').get() # 访问职位详情页,获取更多职位信息 yield scrapy.Request(job_url, callback=self.parse_job_detail, meta={ 'job_title': job_title, 'company_name': company_name, 'salary': salary }) # 翻页 next_page_url = response.xpath('//a[@ka="page-next"]/@href') if next_page_url: yield scrapy.Request(response.urljoin(next_page_url.get()), callback=self.parse) def parse_job_detail(self, response): # 获取职位要求、公司介绍等信息 job_desc = response.xpath('//div[@class="job-sec"]/div[@class="text"]/text()') job_desc = '\n'.join(job_desc.getall()).strip() company_info = response.xpath('//div[@class="job-sec company-info"]/div[@class="text"]/text()') company_info = '\n'.join(company_info.getall()).strip() # 获取meta传递的职位信息 job_title = response.meta['job_title'] company_name = response.meta['company_name'] salary = response.meta['salary'] # 导出数据到excel表格 data = { '职位名称': [job_title], '公司名称': [company_name], '薪资待遇': [salary], '职位描述': [job_desc], '公司介绍': [company_info], } df = pd.DataFrame(data) df.to_excel('boss.xlsx', index=False, header=False, mode='a') ``` 这段代码使用了Scrapy框架,通过XPath解析HTML页面,并使用pandas库将数据导出到excel表格中。您需要安装Scrapy和pandas库才能运行该代码,可以使用以下命令进行安装: ``` pip install scrapy pandas ``` 在运行该代码前,您需要根据您的需求修改`start_urls`和`allowed_domains`变量来指定您要爬取的网站。同时,您也可以根据需要修改数据导出的文件名和数据字段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值