爬虫0030:scrapy

2018-01-18  本文已影响19人  不一样的丶我们

scrapy环境配置

pip install scrapy
pip install pypiwin32

scrapy框架.py文件分析

scrapy startproject myspider
|-- myspider
    |-- scrapy.cfg
    |-- myspider/
        |-- __init__.py
        |-- items.py
        |-- pipeline.py
        |-- settings.py
        |-- spiders/
            |-- __init__.py      

scrapy实战: 智联招聘数据采集

# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html
# 引入sqlalchemy模块
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
# 进入pymysql模块,用于替代sqlalchemy底层的mysqldb
import pymysql
pymysql.install_as_MySQLdb()


class ZhilianPipeline(object):
    '''
    智联招聘爬虫管道模块,进行数据验证和存储
    '''
    def __init__(self):
        # 打开和数据库的连接引擎,获取连接会话对象
        engine = create_engine("mysql://root:@localhost/zhilian_spider?charset=utf8")
        Session = sessionmaker(bind=engine)
        self.session = Session()


    def process_item(self, item, spider):
        # 生成sql语句
        zl_sql = "insert into jobs(job_name, company, salary) values('%s', '%s', '%s')" % \
                 (item['job_name'], item['company'], item['salary'])
        # 执行sql语句
        self.session.execute(zl_sql)
        return item

    def close_spider(self, spider):
        # 提交数据并关闭数据库连接会话
        self.session.commit()
        self.session.close()
scrapy crawl zlspider
select * from jobs;
id job_name company salary
1 数据爬虫工程师 北京昆仑亿发科技股份有限公司 10001-15000
2 Python爬虫产品设计师 北京阿博泰克北大青鸟信息技术有限公司 10001-15000
3 搜索爬虫研发工程师--c++ 中国搜索信息科技股份有限公司 20001-30000
4 数据挖掘(爬虫方向) 北京热云科技有限公司 20000-30000
5 爬虫工程师(AI算法)(031287) 京东金融 面议
6 数据产品经理(爬虫)—外卖事业部#3975 北京三快在线科技有限公司 面议
7 爬虫开发工程师 东旭集团 15001-20000
8 数据抓取爬虫工程师 今日头条 15000-30000
9 高级爬虫工工程师-北京-03198 博彦科技股份有限公司 20000-30000
10 知名集团公司招聘java爬虫数据工程师 北京科锐国际人力资源股份有限公司 10001-15000
11 爬虫工程师(000658) 旷视科技face++ 18000-36000
12 爬虫工程师 凡普金科企业发展(上海)有限公司 20000-40000
13 python爬虫工程师 上海仁教信息技术有限公司 20001-30000
上一篇 下一篇

猜你喜欢

热点阅读