# -*- coding: utf-8 -*-
import scrapy
from Boss.items import BossItem
class ZhipinSpider(scrapy.Spider):
name = 'zhipin'
allowed_domains = ['zhipin.com']
start_urls = ['https://www.zhipin.com/c101280600/?query=python&page=1&ka=page-1']
#['https://www.zhipin.com/c101280600/?query=python&page=%d&ka=page-%d'%(i,i) for i in range(1,21)]
# ['https://www.zhipin.com/c101280600/?query=python&page=1&ka=page-1']
# ['https://www.zhipin.com/c101280600/?query=python&page=1&ka=page-1','https://www.zhipin.com/c101280600/?query=python&page=2&ka=page-2','https://www.zhipin.com/c101280600/?query=python&page=3&ka=page-3']
# 定义一个变量,用于记录当前是第几页
page = 1
def parse(self, response):
job_list = response.xpath("//div[@class='job-list']//li")
# print(len(job_list))
for job in job_list:
item = BossItem()
item["job"] = job.xpath(".//div[@class='job-title']/text()").extract_first()
item["salary"] = job.xpath(".//span[@class='red']/text()").extract_first()
item["company"] = job.xpath(".//div[@class='company-text']//a/text()").extract_first()
item["position"] = job.xpath(".//div[@class='info-primary']/p//text()[1]").extract_first()
item["require"] = job.xpath(".//div[@class='info-primary']/p//text()[2]").extract_first() + job.xpath(".//div[@class='info-primary']/p//text()[3]").extract_first()
item["info"] = " ".join(job.xpath(".//div[@class='company-text']/p//text()").extract())
item["hr"] = " ".join(job.xpath(".//div[@class='info-publis']//h3[@class='name']/text()").extract())
yield item
# 进行一个翻页操作
self.page += 1
if self.page < 20:
# 重新调度下载器
url = 'https://www.zhipin.com/c101280600/?query=python&page=%d&ka=page-%d' % (self.page,self.page)
yield scrapy.Request(url=url,callback=self.parse)
# 这种方案同步的下载,在一个下载器下载器下载并解析完毕以后继续用手动的调取下载器递归下载
4.爬取翻页
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 序 距离上次发布已经过去2个月之多,最近总结的时间越来越少,只能挤着来总结了。终于花了点时间将页面分析与下载工作完...
- 目标 爬取深交所互动易一个论坛型的网站 http://irm.cninfo.com.cn/szse/index.h...
- 利用道译界面制作翻译程序 查看其翻译界面,发现POST请求需要传递大量的参数,测试后,动态生成SATL和S叹息。当...