欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > scrapy练习笔记

scrapy练习笔记

2024/11/29 17:58:26 来源:https://blog.csdn.net/qq_45755863/article/details/143981395  浏览:    关键词:scrapy练习笔记

爬虫项目笔记

1. 爬虫基础

1.1 爬虫概述

爬虫是一种能够自动化获取网页内容的程序。
请添加图片描述

1.2 数据存储

数据可以存储在多种格式和数据库中,如 CSV 文件、MySQL、MongoDB 以及文件存储等。

2. Scrapy 框架

2.1 Scrapy 组件

  • 调度器:负责管理待爬取的 URL 队列。
  • 爬虫:主要用于提取数据并生成新的请求。
  • 引擎:起到协调爬虫、调度器和下载器的作用。
  • 下载器:负责获取网页内容。
  • 管道:用于处理和存储爬取的数据。

2.2 Scrapy 项目结构

项目目录通常包含多个模块,如calipaomeinvpiantupianzhijia等。每个模块都包含爬虫、管道、设置文件等。

2.3 Scrapy 管道配置

ITEM_PIPELINES = {'tupianzhijia.pipelines.TupianzhijiaPipeline': 300,'tupianzhijia.pipelines.MeinvSavePipeline': 301,
}
IMAGES_STORE = "./meinvtupian"

2.4 Scrapy 管道实现

  • TupianzhijiaPipeline
class TupianzhijiaPipeline:def process_item(self, item, spider):# 具体的数据存储逻辑return item
  • MeinvSavePipeline(继承自 ImagesPipeline)
class MeinvSavePipeline(ImagesPipeline):def get_media_requests(self, item, info):yield scrapy.Request(item['img_src'])def file_path(self, request, response=None, info=None):file_name = request.url.split("/")[-1]return f"img/{file_name}"def item_completed(self, results, item, info):print(results)

2.5 Scrapy 爬虫示例

def parse(self, resp, **kwargs):li_list = resp.xpath("//ul[@class='list_con_box_ul']/li")for li in li_list:href = li.xpath("./a/@href").extract_first()yield scrapy.Request(url=resp.urljoin(href),method='get',callback=self.parse_detail)def parse_detail(self, resp, **kwargs):name = resp.xpath("//*[@id='container']/div/div/div[2]/h1/text()").extract_first()img_src = resp.xpath("//div[@id='bigpic']/a/img/@src").extract_first()print(name, img_src)

3. PC 文件管理系统

3.1 功能概述

  • 返回上一级:实现导航到上一级目录的功能。
  • 文件类型:根据文件后缀对文件进行分类。
  • 功能:包括删除、移动等操作。
  • 选择:支持全选、全不选以及反选。

3.2 界面示例

界面包含欢迎信息和选择文件夹的提示,同时提供存储数据的方案选择。

4. 其他

4.1 数据提取示例

trs = resp.xpath("//tbody[@id='tdata']/tr")
for tr in trs:if tr.xpath("./@class").extract_first() == 'tdbck':continuered_ball = tr.css(".chartBall01::text").extract_first()blue_ball = tr.css(".chartBall02::text").extract_first()qihao = tr.xpath("./td[1]/text()").extract_first().strip()print(qihao)

4.2 文件夹管理

以上笔记详细介绍了爬虫项目的各个方面,包括基础概念、Scrapy 框架的使用、PC 文件管理系统的功能以及相关代码示例等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com