scrapy 爬取前程无忧

本文介绍了一种使用Scrapy框架进行网页爬取的方法,具体案例为从51job网站抓取PHP相关职位信息,包括职位名称、公司名称、工作地点、薪资及发布日期等关键字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spider

# -*- coding: utf-8 -*-
import scrapy
from Jobs.items import JobsItem

class Job51spiderSpider(scrapy.Spider):
    name = 'Job51Spider'
    allowed_domains = ['www.51job.com', 'search.51job.com']
    offset = 1
    # 起始url
    url = "https://search.51job.com/list/090200,000000,0000,00,9,99,php,2,"
    start_urls = [url + str(offset) + ".html"]
    def parse(self, response):
        print(response.url)
        for each in response.css('#resultList .el:not(.title)'):
            # 初始化模型对象
            item = JobsItem()
            # 职位名
            item['zwname'] = each.css('.t1 a').xpath('./@title').extract_first()
            # 公司名字
            item['gsname'] = each.css('.t2 a').xpath('./@title').extract_first()
            # 工作地点
            item['gzdd'] = each.css('.t3::text').extract_first()
            # 工资
            item['gz'] = each.css('.t4::text').extract_first()
            # 发布时间
            item['fbtime'] = each.css('.t5::text').extract_first()
            yield item

        zong = response.xpath('//div[@class="dw_page"]/div/div/div/span/text()').extract_first().split('')[0].strip('')
        if self.offset < int(zong):
            self.offset += 1

        # import ipdb; ipdb.set_trace()
        ss = self.url + str(self.offset) + ".html"
        yield scrapy.Request(url=ss, callback=self.parse)

items

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

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy


class JobsItem(scrapy.Item):
    # 职位名
    zwname = scrapy.Field()
    # 公司名字
    gsname = scrapy.Field()
    # 工作地点
    gzdd = scrapy.Field()
    # 工资
    gz = scrapy.Field()
    # 发布时间
    fbtime = scrapy.Field()

 

转载于:https://www.cnblogs.com/sxqfuture/p/10256462.html

好的,scrapy是一个强大的Python爬虫框架,可以用来爬取各种网站数据。以下是爬取前程无忧岗位的基本步骤: 1. 创建一个Scrapy项目 在终端中使用以下命令创建一个Scrapy项目: ``` scrapy startproject jobspider ``` 这将创建一个名为`jobspider`的Scrapy项目。 2. 创建一个Spider 使用以下命令在项目中创建一个Spider: ``` scrapy genspider jobspider spidername ``` 其中,`jobspider`是Spider所属的项目名称,`spidername`是Spider的名称。 3. 定义Spider 在Spider的Python文件中,定义`start_urls`属性和`parse`方法。`start_urls`属性是一个列表,包含要爬取的页面URL。`parse`方法是一个回调函数,用于处理爬取到的响应数据。 以下是一个简单的Spider定义: ``` import scrapy class JobSpider(scrapy.Spider): name = "jobspider" start_urls = [ 'https://search.51job.com/list/000000,000000,0000,00,9,99,Python,2,1.html', ] def parse(self, response): for job in response.css('div.el'): yield { 'title': job.css('p.t1 span a::text').get(), 'company': job.css('span.t2 a::text').get(), 'location': job.css('span.t3::text').get(), 'salary': job.css('span.t4::text').get(), } next_page = response.css('div.p_in ul li.bk a::attr(href)').get() if next_page is not None: yield response.follow(next_page, self.parse) ``` 这个Spider将爬取前程无忧Python相关的岗位信息,并提取岗位标题、公司名称、工作地点和薪资信息。 4. 运行Spider 在终端中使用以下命令运行Spider: ``` scrapy crawl spidername -o output.json ``` 其中,`spidername`是Spider的名称,`output.json`是将结果保存到的文件名。爬虫运行完成后,结果将保存到指定的JSON文件中。 以上就是使用Scrapy爬取前程无忧岗位的基本步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值