创建scrapy项目_项目构建是什么意思

创建scrapy项目_项目构建是什么意思构建项目:scrapystartprojecttaobao创建一个爬虫:scrapygenspider爬虫名称要爬取的限制域

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

构建项目:

scrapy startproject taobao

pycharm打开项目。

在项目根路径创建一个爬虫:

scrapy genspider 爬虫名称 要爬取的限制域

创建scrapy项目_项目构建是什么意思调试工具:

scrapy shell http://www.taobao.com
#选择<title>标签(也可以class),::取标签值,extract提取数据,first指第一个,等价于extract[0]
response.css('title::text').extract_first()

启动项目:

scrapy crawl quotes

pycharm断点调试:

在根路径下新建文件main.py,内容如下:修改下爬虫名称即可

from scrapy.cmdline import execute
import os
import sys

if __name__ == '__main__':
    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
    execute(['scrapy', 'crawl', '爬虫name'])

爬虫如下:

爬虫文件:

import scrapy
from ..items import MyscrapyItem


# 定义爬取逻辑
class QuotesSpider(scrapy.Spider):
    # 爬虫名称
    name = 'quotes'
    # 允许的域
    allowed_domains = ['lab.scrapyd.cn']
    # 初始url集合
    start_urls = ['http://lab.scrapyd.cn/page/1/']

    # 处理response的方法
    def parse(self, response):
        # 用css选择器、获取所有的quote节点
        quotes = response.css('div.quote')
        # 遍历节点集
        for quote in quotes:
            item = MyscrapyItem()
            item["text"] = quote.css('span.text::text').extract_first()
            item["author"] = quote.css('span small.author::text').extract_first()
            item["tags"] = quote.css('div.tags a.tag::text').extract()
            yield item
        # 如果存在下一页则继续递归爬取
        next_page = response.css('.next a::attr(href)').extract_first()
        if next_page is not None:
            yield scrapy.Request(next_page, callback=self.parse)

item文件:

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

import scrapy


class MyscrapyItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    # 定义爬取的数据字段
    text = scrapy.Field()
    author = scrapy.Field()
    tags = scrapy.Field()
    pass

pipelines:

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
from itemadapter import ItemAdapter


class MyscrapyPipeline:
    def process_item(self, item, spider):
        # 处理爬取的结果
        print(item)

要激活pipelines还需要修改一下settings.py

将这一段注释释放掉

ITEM_PIPELINES = {
   'myscrapy.pipelines.MyscrapyPipeline': 300,
}

注意xpath的使用:

    def parse(self, response, **kwargs):
        # 使用绝对路径定位标签
        elements = response.xpath('//div[@class="ui relaxed divided items explore-repo__list"]//div[@class="item"]')
        for element in elements:
            # 注意:再次进行xpath的时候是相对路径在需要//前面加上.。是.//而不是//
            link = self.allow_domains + element.xpath('.//h3/a/@href').get()
            print(link)
        pass

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197146.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 盘点:崛起中的九大HTML5开发工具

    盘点:崛起中的九大HTML5开发工具HTML5被看做是Web开发者创建流行Web应用的利器,增加了对视频和Canvas2D的支持。HTML5的诞生还让人们重新审视浏览器专用多媒体插件的未来,如Adobe的Flash和微软的Silver

  • 手机上移动梦网中毒啦!病毒名字叫:程序管理 版本0.1.1 defwatch!找到删除它的简单方法!

    手机上移动梦网中毒啦!病毒名字叫:程序管理 版本0.1.1 defwatch!找到删除它的简单方法!我的手机型号:N70,S602rd上移动梦网中毒啦!病毒名字叫:程序管理版本0.1.1defwatch真是恶心啊,不知道是他们自己放的,还是别人放的?病毒名字叫:程序管理版本0.1.1def

  • 第七课 实战文件注册机制「建议收藏」

    第七课 实战文件注册机制「建议收藏」                实战文件注册机制【盲人摸象】故名思意就是借助一些我们常用的按钮事件,API断点,去高速有效的锁定此课主要是以回顾和巩固以上六课我们所学的知识,当然这课我奉劝大家还是认真的学习,尤其是以后想靠外挂赚钱的同学,这课学得多自然就会得多不要认为我就是一味的靠我的经验,以下就是一系列调试的技巧 这课主要是观看MOV的赋值,以及寄存器的变化,从而达到激活成功教程这也是以后在激活成功教程带有V…

  • 老庄结构设计官网_互联网颗粒度的名词解释

    老庄结构设计官网_互联网颗粒度的名词解释    本文是对上篇MGN论文阅读做一个详细的补充,主要补充其结构设计及技术实现细节。文章内容整合来自云从科技资深算法研究员袁余锋老师,通过以下四个方面来讲解本次课题:1、ReID的定义及技术难点;2、常用数据集与评价指标简介;3、多粒度网络(MGN)的结构设计与技术实现;4、ReID在行人跟踪中的应用分析与技术展望ReID是行人智能认知的其中一个研究方向,行人智能认知是人脸识别之后比较重要…

  • nginx转发请求超时_nginx设置地址转发

    nginx转发请求超时_nginx设置地址转发修改nginx配置文件/etc/nginx/nginx.conf添加:proxy_connect_timeout300;proxy_send_timeout300;proxy_read_timeout300;keepalive_timeout300;fastcgi_connect_time

    2022年10月18日
  • 反射型XSS漏洞详解

    反射型XSS漏洞详解为什么80%的码农都做不了架构师?>>>…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号