首先要准备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. Spring Cloud Alibaba 初体验(四) Sentinel

    一.Sentinel 下载与运行 本文使用 Sentinel 1.7.1:https://github.com/alibaba/Sentinel/releases 使用自定义端口 8089 运行 Se ...

  2. node-sass版本问题

    node-sass sass-loader的问题 出现了版本的问题 版本太高 版本不兼容解决方法: cnpm i node-sass@4.14.1 cnpm i sass-loader@7.3.1 - ...

  3. C#设计模式-组合模式(Composite Pattern)

    概念 组合是一种结构型设计模式, 你可以使用它将对象组合成树状结构, 并且能像使用独立对象一样使用它们. 组合模式(Composite Pattern)是将对象组合成树形结构以表示'部分-整体'的层次 ...

  4. 第九章 Python文件操作

    前一阵子写类相关的内容,把老猿写得心都累了,本来准备继续介绍一些类相关的知识的,如闭包.装饰器.描述符.枚举类.异常等,现在实在不想继续,以后再开章节吧.本章弄点开胃的小菜提提神,介绍Python中文 ...

  5. Python函数学习遇到的问题

    Python函数的关键字参数 Python函数独立星号(*)分隔的命名关键字参数 Python函数中的位置参数 Python中对输入的可迭代对象元素排序的sorted函数 Python中函数的参数带星 ...

  6. Python妙用re.sub分析正则表达式匹配过程

    声明:本文所使用方法为老猿自行研究并编码,相关代码版权为老猿所有,禁止转载文章,代码禁止用于商业用途! 在<第11.23节 Python 中re模块的搜索替换功能:sub及subn函数>介 ...

  7. PHP代码审计分段讲解(6)

    14 intval函数四舍五入 <?php if($_GET[id]) { mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_M ...

  8. 分别使用python和java练习冒泡排序

    冒泡排序算法的运作如下:(从小到大)   比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针 ...

  9. javascript是面向对象的,怎么体现javascript的继承关系?

    一个简单的例子: var A =function(){ } A.prototype = { v : 5, tmp : 76, echo : function(){console.log(this.tm ...

  10. Scrum冲刺_Day06

    一.团队展示: 1.项目:light_note备忘录 2.队名:删库跑路队 3.团队成员 队员(不分先后) 项目角色 黄敦鸿 后端工程师.测试 黄华 后端工程师.测试 黄骏鹏 后端工程师.测试 黄源钦 ...