scrapy请求传参-BOSS反爬

思路总结

第一次请求就携带cookie,其实他之前有302重定向的如果网络卡的情况下你就会发现,cookie就是这个请求设置的,但是不知道为啥,最开始的请求隐藏掉了

首先boss加了反爬

是cookies的

爬取的内容为职位和职位描述

# -*- coding: utf-8 -*-
import scrapy
from boss.items import BossItem class Boss01Spider(scrapy.Spider):
name = 'boss_01'
start_urls = ['https://www.zhipin.com/c101210100/?query=python&page=1'] #修改第一次请求
def start_requests(self):
cookies = "自己填写自己的cookies"
cookies = {i.split("=")[0]: i.split("=")[1] for i in cookies.split("; ")}
yield scrapy.Request(
self.start_urls[0],
callback=self.parse,
cookies=cookies
) def parse_detail(self,response):
data=response.xpath('//*[@id="main"]/div[3]/div/div[2]/div[2]/div[1]/div/text()').extract()
all_data=''
for i in data:
all_data+="\n"+i
item = response.meta['item']
item['job_content']=all_data
yield item def parse(self, response):
job_list=response.xpath('//div[@class="job-list"]/ul/li')
for i in job_list:
item = BossItem()
#爬取岗位名称和详情的url
job_name=i.xpath('./div/div/h3/a/div[@class="job-title"]/text()').extract_first()
job_url=i.xpath('./div/div/h3/a/@href').extract_first()
job_all_url="https://www.zhipin.com"+job_url
item['job_name']=job_name
yield scrapy.Request(job_all_url, callback=self.parse_detail,meta={'item':item})

scrapy请求传参-BOSS反爬的更多相关文章

  1. scrapy基于请求传参实现深度爬取

    请求传参实现深度爬取 请求传参: 实现深度爬取:爬取多个层级对应的页面数据 使用场景:爬取的数据没有在同一张页面中 在手动请求的时候传递item:yield scrapy.Request(url,ca ...

  2. scrapy 请求传参

    class MovieSpider(scrapy.Spider): name = 'movie' allowed_domains = ['www.id97.com'] start_urls = ['h ...

  3. Scrapy请求传参

    scrapy.Request(url=url, callback=self.parse_item, meta={'item': item}, headers=headers) url: 要请求的地址 ...

  4. python爬虫---scrapy框架爬取图片,scrapy手动发送请求,发送post请求,提升爬取效率,请求传参(meta),五大核心组件,中间件

    # settings 配置 UA USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, l ...

  5. scrapy (三) : 请求传参

    scrapy 请求传参 1.定义数据结构item.py文件 ''' field: item.py ''' # -*- coding: utf-8 -*- # Define here the model ...

  6. 爬虫scrapy组件 请求传参,post请求,中间件

    post请求 在scrapy组件使用post请求需要调用 def start_requests(self): 进行传参再回到 yield scrapy.FormRequest(url=url,form ...

  7. scrapy模块之分页处理,post请求,cookies处理,请求传参

    一.scrapy分页处理 1.分页处理 如上篇博客,初步使用了scrapy框架了,但是只能爬取一页,或者手动的把要爬取的网址手动添加到start_url中,太麻烦接下来介绍该如何去处理分页,手动发起分 ...

  8. 13.scrapy框架的日志等级和请求传参

    今日概要 日志等级 请求传参 如何提高scrapy的爬取效率 今日详情 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是s ...

  9. scrapy框架的日志等级和请求传参

    日志等级 请求传参 如何提高scrapy的爬取效率 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息 ...

随机推荐

  1. bit(比特)与Byte(字节)的区别与关系

    1.bit:位 (小写b) 也称比特 是英文 binary digit的缩写 二进制数系统中,每个0或1就是一个位(bit)位是数据存储(计算机中信息)的最小单位计算机中的CPU位数指的是CPU一次能 ...

  2. Java 发展历程

    JDK 1.0 1991年4月,由 James Gosling 博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品(如机顶盒.冰箱.收音机等)上运 ...

  3. 一次flume exec source采集日志到kafka因为单条日志数据非常大同步失败的踩坑带来的思考

    本次遇到的问题描述,日志采集同步时,当单条日志(日志文件中一行日志)超过2M大小,数据无法采集同步到kafka,分析后,共踩到如下几个坑.1.flume采集时,通过shell+EXEC(tail -F ...

  4. 使用 HTML5 WebSocket 构建实时 Web 应用

    原文地址:http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/ HTML5 WebSocket 简介和实战演练 本文主要介绍 ...

  5. CMMS系统中的物联监测

    有条件的设备物联后,可时实查看设备运行状态,如发现异常,可提前干预.

  6. csp模拟69

    考试一眼看出$T3$原题,但是没做过,心态爆炸. 然后去看$T1$,迷之认为它是矩阵快速幂?推了一个小时,发现在转移过程中方案数并不均匀分布,然后就挂了. 决定先去看T3,只会$O(n\sqrt{n} ...

  7. 替换"marquee",实现无缝滚动

    js的marquee标签,可以实现元素循环滚动,但是不能无缝连接,要实现“无缝滚动”的效果必须使用js(借鉴百度),思路是使要滚动元素相对位置不断改变,上下滚动就相对top或者bottom,左右滚动就 ...

  8. Thinkphp5与QueryList,也可以实现采集(爬虫)页面功能

    QueryList 是什么 QueryList是一套用于内容采集的PHP工具,它使用更加现代化的开发思想,语法简洁.优雅,可扩展性强.相比传统的使用晦涩的正则表达式来做采集,QueryList使用了更 ...

  9. UEFI+GPT电脑Win10下安装openSUSE Leap 42.2双系统

    安装过程仅供参考,最后实现方式不完美. 1       准备工具,一个8G以上U盘,已装好win10的UEFI+GPT电脑(本机为SSD+HDD双硬盘) 2       所需软件: 2.1       ...

  10. spark集群搭建(三台虚拟机)——kafka集群搭建(4)

    !!!该系列使用三台虚拟机搭建一个完整的spark集群,集群环境如下: virtualBox5.2.Ubuntu14.04.securecrt7.3.6_x64英文版(连接虚拟机) jdk1.7.0. ...