1.  spider代码:

# -*- coding: utf-8 -*-
import scrapy
from tencent1.items import Tencent1Item
import json
class Mytest1Spider(scrapy.Spider):
name = 'tc1'
start_urls = ['https://hr.tencent.com/position.php?lid=&tid=&keywords=python&start=0#a/'] def parse(self, response):
item = Tencent1Item()
tr = response.xpath("//tr[@class='even']|//tr[@class='odd']")
for i in tr:
item['job_name']=i.xpath('./td[1]/a/text()').extract_first()
item['job_type'] = i.xpath('./td[2]/text()').extract_first()
item['job_num'] = i.xpath('./td[3]/text()').extract_first()
item['job_place'] = i.xpath('./td[4]/text()').extract_first()
item['job_time'] = i.xpath('./td[5]/text()').extract_first()
# print(item)
url1 = i.xpath('./td[1]/a/@href').extract_first()
url1 = 'https://hr.tencent.com/{}'.format(url1)
yield scrapy.Request(url=url1,meta={'job_item':item},callback=self.parse_detail)
# #下一页网址
# url_next = response.xpath('//a[@id = "next"]/@href').extract_first()
# if '50'in url_next:
# return
# url_next = 'https://hr.tencent.com/{}'.format(url_next)
# print(url_next)
# yield scrapy.Request(url_next) def parse_detail(self,response):
item = response.meta['job_item']
data = response.xpath('//ul[@class="squareli"]/li/text()').extract()
item['job_detail'] = '\n'.join(data)
return item

2.  items代码:

import scrapy

class Tencent1Item(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
job_name = scrapy.Field()
job_type = scrapy.Field()
job_num = scrapy.Field()
job_place = scrapy.Field()
job_time = scrapy.Field()
job_detail = scrapy.Field()

3.  命令,(job.jl 是文件名字)

  

  

scrapy meta不用pipe用命令-o的更多相关文章

  1. node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)

    第七章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  2. scrapy meta信息丢失

    在做58同城爬二手房时,由于房产详情页内对价格进行了转码处理,所以只能从获取详情页url时同时获取该url对应房产的价格,并通过meta传递给下回调函数 现在问题是,在回调函数中找不到原函数meta信 ...

  3. Scrapy爬虫框架与常用命令

    07.08自我总结 一.Scrapy爬虫框架 大体框架 2个桥梁 二.常用命令 全局命令 startproject 语法:scrapy startproject <project_name> ...

  4. Scrapy 常用的shell执行命令

    1.在任意系统下,可以使用 pip 安装 Scrapy pip install scrapy/ 确认安装成功 >>> import scrapy >>> scrap ...

  5. 一款开源的文件搜索神器,终于不用记 find 命令了

    这是 HelloGitHub 推出的<讲解开源项目>系列,用一篇文章带你快速上手有趣的开源项目. 今天给大家推荐一个好用+开源的文件搜索工具--fd 该工具支持大多数主流操作系统,快来更新 ...

  6. 华为手机root 删除一般不用软件 的命令

    上个B518海外版的一键root精简 精简了以下这些,不想删除的自己可以在刷机脚本中删除对应行就行了,音量解锁,GPS,搜索键关屏,root,添加钛备份4.0,re管理器,其他框架未改动,稳定性不会变 ...

  7. 误删文件不用怕 grep命令帮你恢复

    作为长期的电脑使用者,肯定会有误删文件的经历,在 Mac OS X 和 Windows 上删除的文件都会默认进 “回收站”.在 Linux 上如果事先没有用别名(alias)修改默认的 rm 功能,r ...

  8. Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解

    这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: localhost:spider zhaofan$ scrapy start ...

  9. Scrapy 1.4 文档 05 命令行工具

    在系统命令行中,使用 scrapy 命令可以创建工程或启动爬虫,它控制着 Scrapy 的行为,我们称之为 Scrapy 命令行工具(command-line tool)或 Scrapy 工具(Scr ...

随机推荐

  1. C# 制作向导

    1.FormBase界面:有“帮助,上一步,下一步,取消”按钮,这些按钮放置在一个Panel上. namespace DataBase {     public partial class FormB ...

  2. 修改 sql 提示符信息:

    Last login: Thu Dec 8 19:18:08 2016 from 192.168.242.1 [root@localhost ~]# su - oracle [oracle@local ...

  3. Memcached简介及环境安装

    Memcached简介及环境安装 author:SimpleWu 简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga ...

  4. linux目录详解

    网卡的配置文件目录 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0                                     ...

  5. 深入理解 Vue Computed 计算属性

    Computed 计算属性是 Vue 中常用的一个功能,我们今天来说一下他的执行过长 拿官网简单的例子来看一下: <div id="example"> <p> ...

  6. swagger2访问url

    swagger : http://localhost:8080/swagger/index.html springboot中的swagger:http://localhost:8080/swagger ...

  7. Mysql定时清空表

    1.设置开启event scheduler SET GLOBAL event_scheduler=1;   2.验证event_scheduler是否已经开启 show variables like ...

  8. django linux环境部署

    一.操作环境: 1操作系统:Ctrip-CentOS-7.1-x86_64-R3 Python版本:2.7.5 Django版本: Django 1.8.19 (LTS) 二.部署流程 pip ins ...

  9. GreenDao3.2的简单使用

    Android -- GreenDao3.2的简单使用http://www.cnblogs.com/wjtaigwh/p/6394288.html https://github.com/greenro ...

  10. Redis cluster集群模式的原理

    redis cluster redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求 自动将数据进行分片,每个master上放一部分数据 提供内 ...