Python爬虫 scrapy框架爬取某招聘网存入mongodb解析


Posted in Python onJuly 31, 2019

创建项目

scrapy startproject zhaoping

创建爬虫

cd zhaoping
scrapy genspider hr zhaopingwang.com

目录结构

Python爬虫 scrapy框架爬取某招聘网存入mongodb解析

items.py

title = scrapy.Field()
  position = scrapy.Field()
  publish_date = scrapy.Field()

pipelines.py

from pymongo import MongoClient

mongoclient = MongoClient(host='192.168.226.150',port=27017)
collection = mongoclient['zhaoping']['hr']

class TencentPipeline(object):
  def process_item(self, item, spider):
    print(item)
    # 需要转换为 dict
    collection.insert(dict(item))
    return item

spiders/hr.py

def parse(self, response):
    # 不要第一个 和最后一个
    tr_list = response.xpath("//table[@class='tablelist']/tr")[1:-1]
    for tr in tr_list:
      item = TencentItem()
      # xpath 从1 开始数起
      item["title"] = tr.xpath("./td[1]/a/text()").extract_first()
      item["position"] = tr.xpath("./td[2]/text()").extract_first()
      item["publish_date"] = tr.xpath("./td[5]/text()").extract_first()
      yield item

    next_url = response.xpath("//a[@id='next']/@href").extract_first()
    # 构造url
    if next_url != "javascript:;":
      print(next_url)
      next_url = "https://hr.tencent.com/" + next_url
      yield scrapy.Request(url=next_url,callback=self.parse,)

就是这么简单,就获取到数据

Python爬虫 scrapy框架爬取某招聘网存入mongodb解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用递归解决全排列数字示例
Feb 11 Python
Python求两个list的差集、交集与并集的方法
Nov 01 Python
多版本Python共存的配置方法
May 22 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
Python批量修改图片分辨率的实例代码
Jul 04 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 Python
python实现身份证实名认证的方法实例
Nov 08 Python
从numpy数组中取出满足条件的元素示例
Nov 26 Python
python实现简单日志记录库glog的使用
Dec 13 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 Python
Python 多线程之threading 模块的使用
Apr 14 Python
python爬虫 模拟登录人人网过程解析
Jul 31 #Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 #Python
Django实现跨域的2种方法
Jul 31 #Python
Django CSRF跨站请求伪造防护过程解析
Jul 31 #Python
在VS2017中用C#调用python脚本的实现
Jul 31 #Python
使用pip安装python库的多种方式
Jul 31 #Python
python实现几种归一化方法(Normalization Method)
Jul 31 #Python
You might like
php表单转换textarea换行符的方法
2010/09/10 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
Javascript 陷阱 window全局对象
2008/11/26 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
学习python (1)
2006/10/31 Python
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python将unicode和str互相转化的实现
2020/05/11 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
电厂厂长岗位职责
2014/01/02 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
分析Netty直接内存原理及应用
2021/06/14 Java/Android