scrapy meta不用pipe用命令-o
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的更多相关文章
- node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)
第七章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- scrapy meta信息丢失
在做58同城爬二手房时,由于房产详情页内对价格进行了转码处理,所以只能从获取详情页url时同时获取该url对应房产的价格,并通过meta传递给下回调函数 现在问题是,在回调函数中找不到原函数meta信 ...
- Scrapy爬虫框架与常用命令
07.08自我总结 一.Scrapy爬虫框架 大体框架 2个桥梁 二.常用命令 全局命令 startproject 语法:scrapy startproject <project_name> ...
- Scrapy 常用的shell执行命令
1.在任意系统下,可以使用 pip 安装 Scrapy pip install scrapy/ 确认安装成功 >>> import scrapy >>> scrap ...
- 一款开源的文件搜索神器,终于不用记 find 命令了
这是 HelloGitHub 推出的<讲解开源项目>系列,用一篇文章带你快速上手有趣的开源项目. 今天给大家推荐一个好用+开源的文件搜索工具--fd 该工具支持大多数主流操作系统,快来更新 ...
- 华为手机root 删除一般不用软件 的命令
上个B518海外版的一键root精简 精简了以下这些,不想删除的自己可以在刷机脚本中删除对应行就行了,音量解锁,GPS,搜索键关屏,root,添加钛备份4.0,re管理器,其他框架未改动,稳定性不会变 ...
- 误删文件不用怕 grep命令帮你恢复
作为长期的电脑使用者,肯定会有误删文件的经历,在 Mac OS X 和 Windows 上删除的文件都会默认进 “回收站”.在 Linux 上如果事先没有用别名(alias)修改默认的 rm 功能,r ...
- Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解
这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: localhost:spider zhaofan$ scrapy start ...
- Scrapy 1.4 文档 05 命令行工具
在系统命令行中,使用 scrapy 命令可以创建工程或启动爬虫,它控制着 Scrapy 的行为,我们称之为 Scrapy 命令行工具(command-line tool)或 Scrapy 工具(Scr ...
随机推荐
- C# 制作向导
1.FormBase界面:有“帮助,上一步,下一步,取消”按钮,这些按钮放置在一个Panel上. namespace DataBase { public partial class FormB ...
- 修改 sql 提示符信息:
Last login: Thu Dec 8 19:18:08 2016 from 192.168.242.1 [root@localhost ~]# su - oracle [oracle@local ...
- Memcached简介及环境安装
Memcached简介及环境安装 author:SimpleWu 简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga ...
- linux目录详解
网卡的配置文件目录 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ...
- 深入理解 Vue Computed 计算属性
Computed 计算属性是 Vue 中常用的一个功能,我们今天来说一下他的执行过长 拿官网简单的例子来看一下: <div id="example"> <p> ...
- swagger2访问url
swagger : http://localhost:8080/swagger/index.html springboot中的swagger:http://localhost:8080/swagger ...
- Mysql定时清空表
1.设置开启event scheduler SET GLOBAL event_scheduler=1; 2.验证event_scheduler是否已经开启 show variables like ...
- django linux环境部署
一.操作环境: 1操作系统:Ctrip-CentOS-7.1-x86_64-R3 Python版本:2.7.5 Django版本: Django 1.8.19 (LTS) 二.部署流程 pip ins ...
- GreenDao3.2的简单使用
Android -- GreenDao3.2的简单使用http://www.cnblogs.com/wjtaigwh/p/6394288.html https://github.com/greenro ...
- Redis cluster集群模式的原理
redis cluster redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求 自动将数据进行分片,每个master上放一部分数据 提供内 ...