Scrapy爬取前程无忧

一、确定爬取内容并创建mysql表

1、确定要爬取的url在这里插入图片描述
通过观察可以发现url为
https://search.51job.com/list/000000,000000,0000,32,9,99,+,2,xxxx.html
只要修改其中的xxxx,即可实现多网页爬取
2、前程无忧的网页数据动态获取json数据,并由js变量接收,然后显示在网页中,因此爬取时需要解析script标签中的变量
在这里插入图片描述

3、确定爬取字段,然后创建mysql表
mysql表结构如下:
在这里插入图片描述

二、scrapy项目爬取

(一)、准备工作:
1、执行scrapy startproject qcwy,创建scrapy工程
2、执行scrapy genspider qcwyCrawler www.xxx.com,创建爬虫文件
(二)、更改项目配置文件settings.py:

# Scrapy settings for qcwy project
#
# For simplicity, this file contains only settings considered important or
# commonly used. You can find more settings consulting the documentation:
#
#     https://docs.scrapy.org/en/latest/topics/settings.html
#     https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
#     https://docs.scrapy.org/en/latest/topics/spider-middleware.html
from fake_useragent import UserAgent

BOT_NAME = 'qcwy'

SPIDER_MODULES = ['qcwy.spiders']
NEWSPIDER_MODULE = 'qcwy.spiders'

# Crawl responsibly by identifying yourself (and your website) on the user-agent
USER_AGENT = UserAgent().random  # 生成随机请求头

# Obey robots.txt rules
ROBOTSTXT_OBEY = False  # 不遵守robot协议
LOG_LEVEL = 'ERROR'  # 只打印error级别的日志

ITEM_PIPELINES = {
   
    'qcwy.pipelines.QcwyPipeline': 300,
}  # 开启爬虫管道

(三)、更改items.py文件,确定爬取字段

# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy


class QcwyItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    company = scrapy.Field
好的,scrapy是一个强大的Python爬虫框架,可以用来爬取各种网站数据。以下是爬取前程无忧岗位的基本步骤: 1. 创建一个Scrapy项目 在终端中使用以下命令创建一个Scrapy项目: ``` scrapy startproject jobspider ``` 这将创建一个名为`jobspider`的Scrapy项目。 2. 创建一个Spider 使用以下命令在项目中创建一个Spider: ``` scrapy genspider jobspider spidername ``` 其中,`jobspider`是Spider所属的项目名称,`spidername`是Spider的名称。 3. 定义Spider 在Spider的Python文件中,定义`start_urls`属性和`parse`方法。`start_urls`属性是一个列表,包含要爬取的页面URL。`parse`方法是一个回调函数,用于处理爬取到的响应数据。 以下是一个简单的Spider定义: ``` import scrapy class JobSpider(scrapy.Spider): name = "jobspider" start_urls = [ 'https://search.51job.com/list/000000,000000,0000,00,9,99,Python,2,1.html', ] def parse(self, response): for job in response.css('div.el'): yield { 'title': job.css('p.t1 span a::text').get(), 'company': job.css('span.t2 a::text').get(), 'location': job.css('span.t3::text').get(), 'salary': job.css('span.t4::text').get(), } next_page = response.css('div.p_in ul li.bk a::attr(href)').get() if next_page is not None: yield response.follow(next_page, self.parse) ``` 这个Spider将爬取前程无忧上Python相关的岗位信息,并提取岗位标题、公司名称、工作地点和薪资信息。 4. 运行Spider 在终端中使用以下命令运行Spider: ``` scrapy crawl spidername -o output.json ``` 其中,`spidername`是Spider的名称,`output.json`是将结果保存到的文件名。爬虫运行完成后,结果将保存到指定的JSON文件中。 以上就是使用Scrapy爬取前程无忧岗位的基本步骤。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值