首页 > 其他分享 >conda配置scrapy框架环境

conda配置scrapy框架环境

时间:2024-05-22 20:20:56浏览次数:18  
标签:框架 cc Scrapy wallhaven scrapy conda 爬虫 id

Conda配置Scrapy框架环境

安装Scrapy: 如果你还没有安装Scrapy,可以通过pip安装:

pip install scrapy

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。您提到的“scrapy指令分析”,可能是指Scrapy框架中使用的命令行指令。Scrapy的命令行工具(scrapy)提供了多种功能,包括管理项目、爬虫、以及执行爬取过程等。
以下是Scrapy常用的一些指令及其简要说明:

  1. scrapy startproject <project_name>:创建一个名为<project_name>的新Scrapy项目。
  2. scrapy genspider <spider_name> <domain>:在当前项目中创建一个名为<spider_name>的新爬虫,用于爬取<domain>
  3. scrapy crawl <spider>:运行名为<spider>的爬虫。
  4. scrapy list:列出当前项目中所有可用的爬虫。
  5. scrapy fetch <url>:下载给定的URL,并将内容输出到标准输出。
  6. scrapy view <url>:在浏览器中打开给定的URL,并以Scrapy下载后的形式展现。
  7. scrapy shell [url]:启动Scrapy shell,如果指定了[url],则会下载该URL并提取。
  8. scrapy parse <url> [options]:获取给定的URL并解析它,使用指定的爬虫处理。输出结果可以是XML、JSON等。
  9. scrapy settings [options]:获取Scrapy设置的值。
  10. scrapy runspider <file>:运行一个独立的爬虫Python文件,不需要创建Scrapy项目。
  11. scrapy deploy [options] <target>:将项目部署到Scrapy云服务。

爬虫示例

目标:爬取wallhaven的首页html

  • scrapy genspider wallhaven "wallhaven.cc"
  • 修改 "/spiders/wallhaven.py"内容为:
import scrapy


class WallhavenSpider(scrapy.Spider):
    name = "wallhaven"
    allowed_domains = ["wallhaven.cc"]
    start_urls = ["https://wallhaven.cc/latest?page=2"]

    def parse(self, response):
        filename="test.html"
        with open(filename, 'wb') as f:
            f.write(response.body)

  • 执行:scrapy crawl wallhaven
  • 若未得到test.html或者文件为空,需要去配置代理

处理html文件,提取信息

图片在组件

下,该组件属性data-wallpaper-id定义了该图片的id,而该组件中的url是缩略图,并不是我们想要的原图,先拿到该图片的id,该网站的图片id唯一且对应。
img

修改wallhaven.py代码

import scrapy


class WallhavenSpider(scrapy.Spider):
    name = "wallhaven"
    allowed_domains = ["wallhaven.cc"]
    start_urls = ["https://wallhaven.cc/latest?page=2"]

    def parse(self, response):
        filename="test.css"
        figures = response.xpath('//figure[@data-wallpaper-id]')
        with open('image_id.txt', 'wb') as f:
            print(len(figures))
            for figure in figures:
                img_id = figure.xpath('@data-wallpaper-id').get()
                f.write(str(img_id+'\n').encode('utf-8'))

获得了一个image_id.txt文件
img

标签:框架,cc,Scrapy,wallhaven,scrapy,conda,爬虫,id
From: https://www.cnblogs.com/rufu/p/18205845

相关文章

  • Gin 框架是怎么使用 net http 包的(gin.go)
     Gin框架是基于Go语言的标准库net/http构建的,它使用net/http提供的基础功能来构建自己的高性能Web应用框架。具体来说,Gin使用net/http的以下方面: 1,HandlerFunc:Gin使用net/http的HandlerFunc类型,这是一个可以作为HTTP处理程序的函数类型。Gin自己的路......
  • Langchain Plan-And-Execute框架使用
    代码示例:可以调用自定义工具函数importosos.environ['OpenAI_API_KEY']='sk-piAxxxx替换你的xxxU7F5Zrc'os.environ['SERPAPI_API_KEY']='950fbd942ee77替换你的xxx37b'#设置OpenAI网站和SerpApi网站提供的API密钥fromdotenvimportload_dotenv#用于加......
  • scrapy(2)
    importrequestsfromlxmlimportetreeclassHoust(object):def__init__(self):self.url="https://yibin.lianjia.com/ershoufang/pg{}/"self.headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;......
  • 小程序用什么css框架
    随着小程序的快速发展,越来越多的开发者开始关注小程序的前端开发。在小程序的前端开发中,CSS框架是一个非常重要的工具,它可以帮助开发者快速构建出漂亮、响应式的界面。那么,小程序应该使用哪种CSS框架呢?在本文中,我们将介绍几种常用的CSS框架,并分析它们的优缺点,帮助开发者选择适合......
  • EDP .Net开发框架--自动化日志
    平台下载地址:https://gitee.com/alwaysinsist/edp自动化日志不需要额外调用日志相关功能即可无感实现程序集方法调用的日志记录。创建业务逻辑处理类publicclassStudentBLL:BusinessLogicBase<StudentBLL>继承基类BusinessLogicBase<T>定义业务逻辑方法点击查看代......
  • Java框架集成ES
    1、SpringData Elasticsearch框架集成1.1、SpringData框架基本介绍SpringData是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。SpringData可以极大的简化JPA(El......
  • mac anaconda pycharm python3.6 tensorflow 1.1.0
     condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/osx-arm64/condacreate-npy36python=3.6     ps:当加载卡住的时候,强制退出存在下载的包都消失的情况......
  • YiShaAdmin:一款基于.NET Core Web + Bootstrap的企业级快速开发框架
    前言今天大姚给大家分享一款基于.NETCoreWeb+Bootstrap的企业级快速后台开发框架、权限管理系统,代码简单易懂、界面简洁美观(基于MITLicense开源,免费可商用):YiShaAdmin。项目官方介绍YiShaAdmin基于.NETCoreWeb开发,借鉴了很多开源项目的优点,让你开发Web管理系统和移动端A......
  • Flask + React 框架 和 Streamlit 的比较
    使用Flask+React这种框架相对于Streamlit有以下优缺点:优点灵活性和扩展性:Flask+React:提供了高度的灵活性和扩展性。你可以根据需求使用各种前端和后端技术,构建复杂的应用程序,增加额外的功能模块,并进行微服务架构的扩展。Streamlit:主要用于快速构建数据应用,适用于较小规......
  • 「实用推荐」如何为桌面 & 移动跨平台应用选择UI框架/APP架构?
    DevExpress.NETMAUIUI组件库提供了用于Android和iOS移动开发的高性能UI组件,该库包括数据网格、图表、日程、数据编辑器、CollectionView和选项卡组件。获取DevExpress.NETMAUI最新正式版下载DevExpress技术交流群10:532598169      欢迎一起进群讨论“一次编写,随处运......