(75)--用框架爬取腾讯招聘信息并保存到数据库

# 用框架爬取腾讯招聘信息并保存到数据库

# main.py

from scrapy import cmdline

cmdline.execute('scrapy crawl tencent_new'.split())


# tencent_new.py

# -*- coding: utf-8 -*-
import scrapy
from urllib import request,parse
from ..items import JobItem
from datetime import datetime

class TencentNewSpider(scrapy.Spider):
    name = 'tencent_new'
    allowed_domains = ['tencent.com']
    start_urls = ['http://hr.tencent.com']

    base_url = 'https://hr.tencent.com/position.php?start=%d'

    def parse(self, response):
        # 构造分页请求
        for i in range(0,100 + 1,10):
            fullurl = self.base_url % i
            yield scrapy.Request(fullurl,callback=self.parse_list)

    # 解析列表页
    def parse_list(self,response):
        # print(response.url)
        detail_list = response.xpath('//td[@class="l square"]/a/@href').extract()
        for link in detail_list:
            link = request.urljoin(self.base_url,link)

            yield scrapy.Request(link,callback=self.parse_detail)

    # 解析详情页
    def parse_detail(self,response):
        item = JobItem()

        p_name = response.xpath('//td[@id="sharetitle"]/text()').extract_first()
        p_location = response.xpath('//tr[@class="c bottomline"]/td[1]/text()').extract_first()
        p_type = response.xpath('//tr[@class="c bottomline"]/td[2]/text()').extract_first()
        p_number = response.xpath('//tr[@class="c bottomline"]/td[3]/text()').extract_first()

        # print(p_name,p_location,p_type,p_number)

        p_info = response.xpath('//ul[@class="squareli"]')
        p_duty = p_info[0]
        p_require = p_inf
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值