没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
全国云计算应用创新大赛
系统技术路线
命题三-求职者智能分析系统
参赛团队:EFISH
项目开发者:刘港
liu920848992@163.com
2018-3-10
Part1、爬虫
在选取爬虫工具之初,试过很多十分简单的爬虫工具,但使用起来觉得很不
灵活,于是便选取了 python 的一个开源爬虫框架—scrapy.
简单来看一下在运行 scrapy startproject tutorial 后 scrapy 的结构框架
tutorial/
scrapy.cfg # deploy configuration file
tutorial/ # project's Python module, you'll import your code from
here
__init__.py
items.py # project items definition file
middlewares.py # project middlewares file
pipelines.py # project pipelines file
settings.py # project settings file
spiders/ # a directory where you'll later put your spiders
__init__.py
它主要由 items.py、middlewares.py、pipelines.py、spiders/等组成。
下面来介绍一下本系统爬虫的具体技术
Items.py 创建爬取信息的类
class Posts(scrapy.Item):
#企业信息
company_name=scrapy.Field()
company_form=scrapy.Field()#公司性质,eg 国企
company_industry=scrapy.Field()#公司涉及行业
company_scale=scrapy.Field()#公司规模
company_introduce=scrapy.Field()
company_web=scrapy.Field()
company_address=scrapy.Field()
#职位信息
#job_trade=scrapy.Field()#职位行业(大类)1
workcity=scrapy.Field()
job_name=scrapy.Field()
job_welfare=scrapy.Field()
job_inwhichcompany=scrapy.Field()
job_category=scrapy.Field()#职位行业细分
min_salary=scrapy.Field()
max_salary=scrapy.Field()
workplace=scrapy.Field()
job_releasetime=scrapy.Field()
education_background=scrapy.Field()
zhaopin_numbers=scrapy.Field()
min_workexperience=scrapy.Field()
job_form=scrapy.Field()#工作性质,eg 全职
job_require=scrapy.Field()
data_addtime=scrapy.Field()
data_sourceweb=scrapy.Field()
salary=scrapy.Field()
Pipelines.py 管道连接 MySQL 数据库
from twisted.enterprise import adbapi
import MySQLdb
import MySQLdb.cursors
from scrapy.crawler import Settings as settings
from jobsdata_collect.items import Posts
import string
class JobsdataCollectPipeline(object):
def __init__(self):
dbargs=dict(
host='127.0.0.1',
db='zhaopin',
user='root',
passwd='liugang666',
charset='utf8',
cursorclass=MySQLdb.cursors.DictCursor,
use_unicode=True,
)
self.dbpool=adbapi.ConnectionPool('MySQLdb',**dbargs)
def process_item(self, item, spider):
res = self.dbpool.runInteraction(self.insert_into_table,item)
return item
将爬取到的信息插入 MySQL 数据库
def insert_into_table(self,conn,item):
conn.execute('INSERT INTO
collect2(workcity,job_name,job_inwhichcompany,min_salary,max_salary,job
_category,workplace,zhaopin_numbers,\
job_welfare,education_background,min_workexperience,job_form,job_releas
etime,company_name,company_form,\
company_industry,company_scale,company_web,company_address,data_addtime
,data_sourceweb,job_require,company_introduce,salary)\
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%
s,%s,%s)'\
,(item['workcity'],item['job_name'],item['job_inwhichcompany'],
item['min_salary'],item['max_salary'],item['job_category'],item['workpl
ace'],\
item['zhaopin_numbers'],item['job_welfare'],item['education_background'
],item['min_workexperience'],\
item['job_form'],item['job_releasetime'],item['company_name'],item['com
pany_form'],item['company_industry'],item['company_scale'],\
item['company_web'],item['company_address'],item['data_addtime'],item['
data_sourceweb'],item['job_require'],item['company_introduce'],item['sa
lary']))
spider/collect1.py 爬虫主程序
# -*- coding: utf-8 -*-
import scrapy
from scrapy.loader import ItemLoader
from jobsdata_collect.items import Posts
import datetime
import string
import re
class Collect1Spider(scrapy.Spider):
剩余18页未读,继续阅读
永远的12
- 粉丝: 67
- 资源: 321
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0