conda配置scrapy框架环境

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

posted @ 2024-05-22 20:11  迷糊的Rufu  阅读(94)  评论(0)    收藏  举报