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中stdout输出不缓存的设置方法
May 29 Python
python自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
python中lambda与def用法对比实例分析
Apr 30 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
基于Python实现文件大小输出
Jan 11 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
django如何实现视图重定向
Jul 24 Python
python下载库的步骤方法
Oct 12 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
如何基于python实现不邻接植花
May 01 Python
python实现人工蜂群算法
Sep 18 Python
拒绝盗图!教你怎么用python给图片加水印
Jun 04 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
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
js截取函数(indexOf,join等)
2010/09/01 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
Python数据结构之Array用法实例
2014/10/09 Python
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
详解Python中的文件操作
2016/08/28 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
python3字符串操作总结
2019/07/24 Python
python实现根据文件格式分类
2019/10/31 Python
在keras 中获取张量 tensor 的维度大小实例
2020/06/10 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
Python学习之异常中的finally使用详解
2022/03/16 Python