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 ...
随机推荐
- Confluence 6 已经存在的安装配置数据库字符集编码
针对已经存在的 Confluence 安装,如果你安装的 Confluence 版本是 6.4 或者早期的版本,我们在安装的时候没有检查你数据库的字符设置. 如果你的数据库当前没有被配置使用 UTF- ...
- vue的单选框
- day04 运算符 流程控制 (if while/of)
1. 运算符算数运算符 + - * / int / float :数字类型 # print(10 + 3.1)# print(10 / 3)# print(10 // 3)# print(10 % 3 ...
- laravel 统计数据
//根据format字符串格式化date值.下列修饰符可以被用在format字符串中: //%M 月名字(January……December) //%W 星期名字(Sunday……Saturday ...
- react 为组件添加样式
width/height/fontSize:可以直接写数字: style={ width:200,height:200 } 其他带数字的可以:数字+'px' style={ lineHeight:20 ...
- SpringMVC + MyBatis + Mysql + Redis(作为二级缓存) 配置
2016年03月03日 10:37:47 标签: mysql / redis / mybatis / spring mvc / spring 33805 项目环境: 在SpringMVC + MyBa ...
- 论文阅读笔记十五:Pyramid Scene Parsing Network(CVPR2016)
论文源址:https://arxiv.org/pdf/1612.01105.pdf tensorflow代码:https://github.com/hellochick/PSPNet-tensorfl ...
- 设置IDEA中的web
- Unable to locate package python-pip
原文:https://blog.csdn.net/yyinhai/article/details/53056973 Ubuntu下执行apt install python-pip得到如下错误提示: R ...
- 执行shell文件是,提示chmod: 更改'./shell1.sh' 的权限: 不允许的操作。