首先要准备python3+scrapy+pycharm

一、首先让我们了解一下网站

拉勾网https://www.lagou.com/

和Boss直聘类似的网址设计方式,与智联招聘不同,它采用普通的页面加载方式

我们采用scrapy中的crawlspider爬取

二、创建爬虫程序

scrapy startproject lagou

创建爬虫文件

scrapy genspider -t crawl zhaopin "www.lagou.com"

由此爬虫程序创建完毕

三、编写爬虫程序

出于演示和测试,我们这次只爬取一条数据。

items文件

import scrapy

class BossItem(scrapy.Item):
# 岗位名称
jobName = scrapy.Field()

zhaopin.py爬虫文件

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from boss.items import BossItem class ZhipinSpider(CrawlSpider):
name = 'zhipin'
allowed_domains = ['www.lagou.com']
start_urls = ['https://www.lagou.com'] rules = (
Rule(LinkExtractor(allow=r'com/zhaopin/\w+/'), callback='zhilianParse', follow=False),  #采用正则匹配的方式,获取网页url
) def zhilianParse(self, response):
datas = response.xpath('//ul[@class="item_con_list"]/li')  #通过xpath方式获取要爬取的域
for data in datas:  #逐层迭代
item = BossItem()
# 岗位名称
item["jobName"] = data.xpath('//div//div/a/h3[1]/text()').get()  #定位爬取信息
yield item  #rule会迭代所有的url不需要再写回调函数

管道文件



import json
import os

class BossPipeline(object):
def __init__(self):
self.filename = open("Boss.json", "wb")
self.path = "G:\images\p"
if not os.path.exists(self.path):
os.mkdir(self.path)  #判断路径

def process_item(self, item, spider):
# 岗位名称
jobName = item['jobName']
js = json.dumps(dict(item), ensure_ascii=False) + "\n"

self.filename.write(js.encode("utf-8"))
return item

def __close__(self):
self.filename.close()

配置settings文件

DEFAULT_REQUEST_HEADERS = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
}
ITEM_PIPELINES = {
'boss.pipelines.BossPipeline': 300,
}
LOG_FILE="log.log"  #放日志文件用的,可有可无
ROBOTSTXT_OBEY = False

四、启动爬虫

scrapy crawl zhaopin

爬取结果

在第一篇文章中讲了如何存入mysql,这里我就不多赘述了,大家自行查阅。

python-scrapy爬取某招聘网站(二)的更多相关文章

  1. Python——Scrapy爬取链家网站所有房源信息

    用scrapy爬取链家全国以上房源分类的信息: 路径: items.py # -*- coding: utf-8 -*- # Define here the models for your scrap ...

  2. python scrapy爬取前程无忧招聘信息

    使用scrapy框架之前,使用以下命令下载库: pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple 1.创建项目文件夹 scr ...

  3. scrapy爬取西刺网站ip

    # scrapy爬取西刺网站ip # -*- coding: utf-8 -*- import scrapy from xici.items import XiciItem class Xicispi ...

  4. python scrapy爬取HBS 汉堡南美航运公司柜号信息

    下面分享个scrapy的例子 利用scrapy爬取HBS 船公司柜号信息 1.前期准备 查询提单号下的柜号有哪些,主要是在下面的网站上,输入提单号,然后点击查询 https://www.hamburg ...

  5. Python轻松爬取Rosimm写真网站全部图片

    RosimmImage 爬取Rosimm写真网站图片 有图有真相 def main_start(url): """ 爬虫入口,主要爬取操作 ""&qu ...

  6. 利用python实现爬虫爬取某招聘网站,北京地区岗位名称包含某关键字的所有岗位平均月薪

    #通过输入的关键字,爬取北京地区某岗位的平均月薪 # -*- coding: utf-8 -*- import re import requests import time import lxml.h ...

  7. Python网络爬虫 | Scrapy爬取妹子图网站全站照片

    根据现有的知识,写了一个下载妹子图(meizitu.com)Scrapy脚本,把全站两万多张照片下载到了本地. 网站的分析 网页的网址分析 打开网站,发现网页的网址都是以 http://www.mei ...

  8. Python Scrapy 爬取煎蛋网妹子图实例(二)

    上篇已经介绍了 图片的爬取,后来觉得不太好,每次爬取的图片 都在一个文件下,不方便区分,且数据库中没有爬取的时间标识,不方便后续查看 数据时何时爬取的,所以这里进行了局部修改 修改一:修改爬虫执行方式 ...

  9. 爬虫框架之Scrapy——爬取某招聘信息网站

    案例1:爬取内容存储为一个文件 1.建立项目 C:\pythonStudy\ScrapyProject>scrapy startproject tenCent New Scrapy projec ...

随机推荐

  1. moviepy音视频剪辑:音视频的加载和输出

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在本地进行音视频处理时,首先要从视频文件 ...

  2. PyQt(Python+Qt)学习随笔:QSlider滑动条部件功能简介

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 Designer输入部件中的Horizo ...

  3. linux 下指定配置文件安装mongodb

    下载 官网下载地址:https://www.mongodb.com/try/download/community,并上传linux 服务器 二.mongon目录结构下 /data/mongo . lo ...

  4. oracle ADG启动顺序

    一.oracle ADG启动顺序 1.启动主备库监听 [oracle@dgdb1 ~]$ lsnrctl start [oracle@dgdb2 ~]$ lsnrctl start   2.启动备库 ...

  5. Linux内核中container_of宏的详细解释

    上一节拒绝造轮子!如何移植并使用Linux内核的通用链表(附完整代码实现)我们在分析Linux内核链表的时候注意到内核在求解结构体偏移的时候巧妙的使用了container_of宏定义,今天我们来详细剖 ...

  6. 其它语言通过HiveServer2访问Hive

    先解释一下几个名词: metadata :hive元数据,即hive定义的表名,字段名,类型,分区,用户这些数据.一般存储关系型书库mysql中,在测试阶段也可以用hive内置Derby数据库. me ...

  7. [日常摸鱼]poj1151Atlantis-扫描线

    题意:给一堆长宽平行于坐标轴的长方形求并的面积 我个沙茶快写了一晚上- 大概思想就是先根据$y$坐标排个序,把$y$坐标离散化一下,放到线段树里面维护,这里的写法是让线段树的节点储存这个点对应的整段线 ...

  8. Flutter InkWell - Flutter每周一组件

    Flutter Inkwell使用详解 该文章属于[Flutter每周一组件]系列,其它组件可以查看该系列下的文章,该系列会不间断更新:所有组件的demo已经上传值Github: https://gi ...

  9. 嵌入式开发笔记——调试组件SEGGER_RTT

    一.前言 在嵌入式开发过程中,经常会通过打印输出一些调试信息来调试参数.查找问题等,通常我的做法都是使用芯片的串口硬件设备配合串口助手软件来进行调试.但是这次项目的PCB硬件设计并未预留串口调试接口, ...

  10. kali 2020安装docker

    环境准备 kali虚拟机2020.01x64位版本 安装docker官方文档:https://docs.docker.com/engine/installation/linux/docker-ce/d ...