Python爬取前程无忧网站上python的招聘信息

88 阅读1分钟

创建爬虫项目

scrapy startproject qianchengwuyou

cd qianchengwuyou

scrapy genspider -t crawl qcwy www.xxx.com

items中定义爬取的字段

import scrapy

class QianchengwuyouItem(scrapy.Item):

define the fields for your item here like:

job_title = scrapy.Field()

company_name = scrapy.Field()

company_address = scrapy.Field()

salary = scrapy.Field()

release_time = scrapy.Field()

qcwy.py文件内写主程序

import scrapy

from scrapy.linkextractors import LinkExtractor

from scrapy.spiders import CrawlSpider, Rule

from qianchengwuyou.items import QianchengwuyouItem

class QcwySpider(CrawlSpider):

name = 'qcwy'

allowed_domains = ['www.xxx.com']

start_urls = ['search.51job.com/list/000000…?']

search.51job.com/list/000000…

rules = (

Rule(LinkExtractor(allow=r'search.51job.com/list/000000…?'), callback='parse_item', follow=True),

)

def parse_item(self, response):

list_job = response.xpath('//div[@id="resultList"]/div[@class="el"][position()>1]')

for job in list_job:

item = QianchengwuyouItem()

item['job_title'] = job.xpath('./p/span/a/@title').extract_first()

item['company_name'] = job.xpath('./span[1]/a/@title').extract_first()

item['company_address'] = job.xpath('./span[2]/text()').extract_first()

item['salary'] = job.xpath('./span[3]/text()').extract_first()

item['release_time'] = job.xpath('./span[4]/text()').extract_first()

yield item

pipelines.py文件中写下载规则

import pymysql

class QianchengwuyouPipeline(object):

conn = None

mycursor = None

def open_spider(self, spider):

print('链接数据库...')

self.conn = pymysql.connect(host='172.16.25.4', user='root', password='root', db='scrapy')

self.mycursor = self.conn.cursor()

def process_item(self, item, spider):

print('正在写数据库...')

job_title = item['job_title']

company_name = item['company_name']

company_address = item['company_address']

salary = item['salary']

release_time = item['release_time']

sql = 'insert into qcwy VALUES (null,"%s","%s","%s","%s","%s")' % (

job_title, company_name, company_address, salary, release_time)

bool = self.mycursor.execute(sql)

self.conn.commit()

return item

def close_spider(self, spider):

print('写入数据库完成...')

self.mycursor.close()

最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

了解详情:docs.qq.com/doc/DSnl3ZG…