Python scrapy 使用 爬取JOB伯乐在线

本文介绍了使用Python的Scrapy框架爬取JOB伯乐在线的步骤。主要内容包括设置ROBOTSTXT_OBEY为False,理解Scrapy的项目结构,如scrapy.cfg、items.py、pipelines.py和settings.py文件的作用,并探讨了Scrapy中CSS和XPath两种选择器规则。同时,展示了爬虫代码、items.py中定义的数据结构,以及settings.py和pipelines.py的配置代码。
摘要由CSDN通过智能技术生成

scrapy创建项目

# 创建一个项目
scrapy startproject 项目名称

cd  进入项目目录

# 生成一个爬虫文件
scrapy genspider 爬虫名称 www.baidu.com

# 运行一个爬虫
scrapy crawl 爬虫名称

scrapy.cfg :项目的配置文件

items.py :项目的目标文件

pipelines.py :项目的管道文件

settings.py :项目的设置文件

spiders/ :存储爬虫代码目录

 

# -*- coding: utf-8 -*-
import scrapy


class BaiduSpider(scrapy.Spider):
    # 项目唯一的名字
    name = 'baidu'
    # 允许爬取的域名
    allowed_domains = ['baidu.com']
    # 初始请求 url
    start_urls = ['http://baidu.com/']

    def parse(self, response):
        pass

 ROBOTSTXT_OBEY 要设置为 False


scrapy 提供2种规则: 一种css一种xpaht

# -*- coding: utf-8 -*-
import scrapy


class JobboleSpider(scrapy.Spider):
    name = 'jobbole'
    allowed_domains = ['blog.jobbole.com']
    start_urls = ['http://python.jobbole.com/89316/']

    def parse(self, response):
        # 通过 xpath
        title = response.xpath("//div[@class='entry-header']/h1/text()").extract()[0]
        time = response.xpath("//p[@class='entry-meta-hide-on-mobile']/text()").extract()[0].replace('·','').strip()
        zan = response.xpath("//span[contains(@class,'vote-post-up')]/h10/text()").extract()[0]
        sc = response.xpath("//div[contains(@class,'post-adds')]//span[2]/text()").extract()[0].replace('收藏','').strip()
        ywcc = response.xpath("//div[contains(@class,'copyright-area')]/a/text()").extract()[0]
        yw_url = response.xpath("//div[contains(@class,'copyright-area')]/a/@href").extract()[0]
        content = response.xpath("//div[contains(@class,'entry')]").extract()[0]

        # 通过 css
        title_css = response.css(".entry-header h1::text").extract()[0]
        time_css = response.css(".entry-meta-hide-on-mobile::text").extract()[0].replace('·','').strip()
        zan_css = response.css(".post-adds span h10::text").extract()[0]
        sc_css = response.css(".btn-bluet-bigger.href-style.bookm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值