python爬取智联招聘网_python爬取智联招聘网的信息

# -*- coding: utf-8 -*-

import scrapy

from ..items import JobspiderItem

class ZlSpider(scrapy.Spider):

name = 'zl'

allowed_domains = ['zhaopin.com']

start_urls = [

'http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC%2B%E4%B8%8A%E6%B5%B7%2B%E5%B9%BF%E5%B7%9E%2B%E6%B7%B1%E5%9C%B3&kw=python%20&sm=0&p=1',

'http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC%2B%E4%B8%8A%E6%B5%B7%2B%E5%B9%BF%E5%B7%9E%2B%E6%B7%B1%E5%9C%B3&kw=php%20&sm=0&p=1',

'http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC%2B%E4%B8%8A%E6%B5%B7%2B%E5%B9%BF%E5%B7%9E%2B%E6%B7%B1%E5%9C%B3&kw=html5%20&sm=0&p=1',

]

def parse(self, response):

yield scrapy.Request(

url=response.url,

callback=self.parse_job_info,

meta={},

dont_filter=True

)

def parse_job_info(self, response):

"""

解析工作信息

:param response:

:return:

"""

zl_table_list = response.xpath("//div[@id='newlist_list_content_table']/table[@class='newlist']")

for zl_table in zl_table_list[1:]:

#当遇到table标签时,要注意tbody加不加

#此处是网页自动生成的,所以不加

#想要查看是不是自动生成的,可以运行起来看效果,或者右键查看源码

# zl_td_list = zl_table.xpath("tr[1]/td")

# #注意:此种方法只有确定列表中有数据时,才可以使用

# td1 = zl_td_list[0]

# td2 = zl_td_list[1]

# td3 = zl_td_list[2]

# td4 = zl_td_list[3]

# td5 = zl_td_list[4]

#查找元素尽量使用xpath定位,少用索引,因为可能出现索引越界错误

#异常捕获是在自己不能确定代码有什么错误的时候采利用

#//text() 获取标签内的所有文本数据

#extract()把列表中的元素转换成文本,但其本身还是列表

#extract_first("默认值")

# 把列表中的元素转换成文本,并去除第一个,如果取不到,返回默认值

#此时td1是一个列表,里面分别含有a和b标签中的文本

td1 = zl_table.xpath("tr/td[@class='zwmc']/div/a//text()").extract()

td1 = map(str.strip,td1)

job_name = "".join(td1).replace(",", "/")

fan_kui_lv = zl_table.xpath("tr/td[@class='fk_lv']/span/text()").extract_first("没有反馈率").strip()

job_company_name = zl_table.xpath("tr/td[@class='gsmc']/a[1]/text()").extract_first("没有公司名称").strip()

job_salary = zl_table.xpath("tr/td[@class='zwyx']/text()").extract_first("面议").strip()

job_place = zl_table.xpath("tr/td[@class='gzdd']/text()").extract_first("没有地址").strip()

print(job_name, fan_kui_lv, job_company_name, job_salary,job_place)

item=JobspiderItem()

item['job_name'] = job_name

item['fan_kui_lv'] = fan_kui_lv

item['job_company_name'] = job_company_name

item['job_salary'] = job_salary

item['job_place'] = job_place

item['job_type'] = "智联招聘"

item['job_time'] = "没有时间"

yield item

yield scrapy.Request(

url=response.url,

callback=self.parse_next_page,

meta={},

dont_filter=True

)

def parse_next_page(self, response):

"""

解析下一页

:param response:

:return:

"""

#通过判断a标签

next_page = response.xpath("//a[text()='下一页']/@href").extract_first()

if next_page:

yield scrapy.Request(

url=next_page,

callback=self.parse_job_info,

meta={},

dont_filter=True

)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值