使用scrapy框架爬boss直聘

2021-09-22 05:48:23 字數 2421 閱讀 4866

boss直聘:

建立scrapy 專案:

scrapy startproject scrapyproject
建立spider檔案:

scrapy genspider s_boss zhipin.com
目錄1.找介面 url

2.s_boss.py

3.items.py

4.pipelines.py

page後面傳的是頁數

c101010100/?query=python&page={}&ka=page-next

# -*- coding: utf-8 -*-

import scrapy

from scrapyproject.items import bossitem

from lxml import etree

class sbossspider(scrapy.spider):

name = 's_boss'

allowed_domains = ['zhipin.com']

start_urls =

for page in range(1, 11):

url = 'c101010100/?query=python&page={}&ka=page-next'.format(page)

def parse(self, response):

content = response.body.decode('utf-8')

tree = etree.html(content)

li_list = tree.xpath('//div[@class="job-list"]/ul/li')

print(len(li_list))

for li in li_list:

item = bossitem()

# 職位名稱

title = li.xpath('.//a//text()')[1]

# 工資水平

salary = li.xpath('.//span/text()')[0]

# 職位要求

demand = li.xpath('.//div[@class="info-primary"]/p//text()')

demand_info = ' '.join(demand)

# 公司情況

company_name = li.xpath('.//div[@class="info-company"]//h3//text()')[0]

company_info = li.xpath('.//div[@class="info-company"]//p//text()')

company = company_name + ':' + ' '.join(company_info)

item['title'] = title

item['salary'] = salary

item['demand_info'] = demand_info

item['company'] = company

yield item

注意一下:在進行請求url的時候,需要請求頭,scrapy框架的請求頭需要在settings.py中設定:

在網頁上開啟network:

找到user_agent:

寫在settings.py的user_agent

需要在settings.py中配置pipeline

Scrapy實戰 爬Boss直聘

我們爬取頁面中每個公司的崗位資訊,包括職位 辦公地點 工作經驗 上圖中的11個加上boss直聘的jobid共12個資訊 開啟shell scrapy shell view response 發現返回403 嘗試把headers一併給出 from scrapy import request fetch...

scrapy請求傳參 BOSS反爬

思路總結 第一次請求就攜帶cookie,其實他之前有302重定向的如果網路卡的情況下你就會發現,cookie就是這個請求設定的,但是不知道為啥,最開始的請求隱藏掉了 首先boss加了反爬 是cookies的 爬取的內容為職位和職位描述 coding utf 8 import scrapy from ...

使用Scrapy框架爬取鏈家資料

coding utf 8 import scrapy from pachong6.items import pachong6item class lianjiaspider scrapy.spider name lianjia allowed domains m.lianjia.com start ...