scrapy 第一个案例(爬取腾讯招聘职位信息)

import scrapy
import jsonclass TzcSpider(scrapy.Spider):# spider的名字,唯一name = 'tzc'# 起始地址start_urls = ['https://hr.tencent.com/position.php?keywords=python&tid=0&lid=2268']# 每个url爬取之后会调用这个方法def parse(self, response):tr = response.xpath( '//table[@class="tablelist"]/tr[@class = "even"]|//table[@class="tablelist"]/tr[@class = "odd"]')with open('info.json','a') as f:for i in tr:data = {"jobName": i.xpath('./td[1]/a/text()').extract_first(),"jobType":i.xpath('./td[2]/text()').extract_first(),"Num":i.xpath('./td[3]/text()').extract_first(),"Place":i.xpath('./td[4]/text()').extract_first(),"Time":i.xpath('./td[5]/text()').extract_first()}data = json.dumps(data,ensure_ascii=False)f.write(data)f.write('\n')# 寻找下一页标签url_next = response.xpath('//a[@id = "next"]/@href').extract_first()# 提取的是段标签,需要加上域名url_next = 'https://hr.tencent.com/{}'.format(url_next)# 返回下一页地址,scrapy会递归return scrapy.Request(url_next)

 

转载于:https://www.cnblogs.com/cxhzy/p/10299696.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统带你学习 WebAPIs 第一讲

Web APIs 本篇学习目标: 能够通过ID来获取元素 能够通过标签名来获取元素 能够通过class来获取元素 能够通过选择器来获取元素 能够获取body和html元素 能够给元素注册事件 能够修改元素的内容 能够区分innerText和innerHTML的区别 能够修改像div这类普通元素的属性…

react-webpack config webpack@3.4.1

1.最重要的一点 yarn add webpack3.4.1 -g 2. 解决跨域请求 webpack.json 中添加 https://segmentfault.com/q/1010000008190876?_ea1579884 webpack config less -----框架 ----查看考链接 https://blog.csdn.net/mjzhang1993/article/details/79013430转载于:https://w…

系统带你学习 WebAPIs 第二讲

Web APIs 本篇学习目标: 能够说出排他操作的一般实现步骤 能够使用html5中的dataset方式操作自定义属性 能够根据提示完成百度换肤的案例 能够根据提示完成全选案例 能够根据提示完成tab栏切换案例 能够区分元素节点、文本节点、属性节点 能够获取指定元素的父元素 …

在微信浏览器中 location.reload() 不刷新解决方案(直接调用方法)

1、问题 在微信浏览器中,需要时刷新当前页面。 正常情况下我们直接使用 location.reload 方法来刷新。 2、解决方法 function realod(){var {search,href} window.location;href href.replace(/&?t_reload(\d)/g,)window.location.href href(search?&:…

Python爬虫学习笔记1:request、selenium、ChromeDrive、GeckoDriver等相关依赖安装

系列学习笔记参考:python3网络爬虫开发实战 requests # pip install requests import requestsselenium Selenium是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等 操作 。 对于一些 JavaScript谊染的页面来说&a…

系统带你学习 WebAPIs 第三讲

Web APIs 本篇学习目标: 能够使用removeChild()方法删除节点 能够完成动态生成表格案例 能够使用传统方式和监听方式给元素注册事件 能够说出事件流执行的三个阶段 能够在事件处理函数中获取事件对象 能够使用事件对象取消默认行为 能够使用事件对象阻止事件冒泡 能…

CSS3文本与字体

一、CSS3 换行 1、word-break(规定自动换行的处理方法) word-break: normal / break-all / keep-all;/* normal:使用浏览器默认的换行规则 break-all:允许在单词内换行 keep-all:只能在半角空格或连字符处换行 */ 兼容…

系统带你学习 WebAPIs 第四讲

Web APIs 本篇学习目标: 能够说出常用的3-5个键盘事件 能够知道如何获取当前键盘按下的是哪个键 能够知道浏览器的顶级对象window 能够使用window.onload事件 能够使用window.onresize事件 能够说出两种定时器的区别 能够使用location对象的href属性完成页面之间的跳…

linux chrome 安装过程记录

最近,由于公司需要做爬虫抓取一些新闻,在开发过程中,发现有些网站有一定的反爬措施,通过浏览器访问一切正常,通过其他方式,包括:curl,urlconnection 等,就算加入了cookie…

系统带你学习 WebAPIs 第五讲

Web APIs 本篇学习目标: 能够说出常见 offset 系列属性的作用 能够说出常见 client 系列属性的作用 能够说出常见 scroll 系列属性的作用 能够封装简单动画函数 **1.1. **元素偏移量 offset 系列 1.1.1 offset 概述 offset 翻译过来就是偏移量, 我们使用 offset系…

ajax请求相关问题

Ajax中async:false/true的作用: async. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程。 async…

有赞美业微前端的落地总结

2020年4月,有赞美业的前端团队历经7个月时间,完成了美业PC架构从单体SPA到微前端架构的设计、迁移工作。PPT在去年6月份就有了,现在再整理一下形成文章分享给大家。 头图 目录 Part 01 “大话”微前端 微前端是什么 背景 目标 达成价值 …

bcp文件, 逗号文件

bcp 实用工具 https://docs.microsoft.com/zh-cn/sql/tools/bcp-utility?viewsql-server-2017 大容量复制程序实用工具 (bcp) 可以在 Microsoft SQL Server 实例和用户指定格式的数据文件间大容量复制数据。 使用 bcp 实用工具可以将大量新行导入 SQL Server 表,或…

远程登录和复制文件

命令: ssh 对应英文: secure shell 使用: ssh [-P] 用户名ip 优点: 加密和压缩,即安全和提高传输速度 注意: 除了windows系统外的系统默认有ssh客户端,直接使用命令便可; windows系统…

Markdown 编辑器才是yyds|CSDN编辑器测评

前言 今天小编为大家介绍一款编辑器,也正是小编书写这篇文章所使用的Markdown编辑器,正是广大博友想要发布文章的工具。那么 你知道他的都有哪些方便之处么 下面小编带你了解一下 Markdown是什么 Markdown是一种轻量标记语言,通过简单的语法&#xff…

JVM对象已死

(一) 引用计数法 每有一个引用就加1,每失效一个就减1,为0表示可回收;但是此方法无法解决相互引用的情况 (二) 根搜索算法 从一系列的GCRoots对象为起点向下搜索,搜索的路径称为引用链,当一个对象没有任何引…

pcl和opencv多版本共存

pcl和opencv多版本共存 在Ubuntu 16.04系统下安装kinetic版本ROS, 会默认安装opencv 3.3.1和pcl1.7. opencv安装路径/opt/ros/kinetic/ pcl安装路径/usr/ 如果想安装opencv2.4版本,或者安装pcl 1.8版本,那么如何设置安装路径,同时…

45天带你玩转Node(第三天)Node环境安装

本篇目标 能够搭建 Node 运行环境掌握 NodeJS 程序的运行方法理解模块化开发理解系统模块和第三方模块理解package.json文件作用 1.Node 开发概述 1.1为什么要学习服务器端开发技术 前端人员为什么要学习服务器端开发技术? 能够和后端程序员更加紧密的配合网站…

给页面加速,干掉Dom Level 0 Event

现在的web应用越来越复杂,需要响应各种各样的用户触发事件,因而也就不可避免的,需要给我们的html页面上的dom元素增加事件监听函数. 我们知道给dom元素绑定事件监听函数的方法有如下3种: 1 : 页面html: <button onclick”test();”></button>2: 页面html: <bu…

系统带你学习 WebAPIs —— 动画篇(第六讲)

Web APIs 本篇学习目标: 能够封装简单动画函数 能够理解缓动动画的封装 能够使用动画函数 能够写出网页轮播图案例 能够写出移动端触屏事件 1.1. 动画函数封装 1.1.1 缓动效果原理 缓动动画就是让元素运动速度有所变化&#xff0c;最常见的是让速度慢慢停下来 思路&#xff…