灵山建设局网站,做公众号的素材网站,网站如何做下载链接,企业做网站哪家好文章目录 scrapy框架如何学习框架#xff1f;什么是scarpy#xff1f;scrapy的使用步骤1.先转到想创建工程的目录下#xff1a;cd ...2.创建一个工程3.创建之后要转到工程目录下4.在spiders子目录中创建一个爬虫文件5.执行工程setting文件中的参数 scrapy数据解析scrapy持久… 文章目录 scrapy框架如何学习框架什么是scarpyscrapy的使用步骤1.先转到想创建工程的目录下cd ...2.创建一个工程3.创建之后要转到工程目录下4.在spiders子目录中创建一个爬虫文件5.执行工程setting文件中的参数 scrapy数据解析scrapy持久化存储基于终端指令基于管道持久化存储操作基于Spider的全站数据爬取请求传参scrapy爬取图片 scrapy框架
如何学习框架
专门学习框架封装的各种功能的详细用法。
什么是scarpy
是爬虫中封装好的一个明星框架功能高性能的持久化存储异步的数据下载高性能的数据解析分布式。
scrapy的使用步骤
1.先转到想创建工程的目录下cd …
2.创建一个工程
scrapy startproject 工程名 XXProXXproject3.创建之后要转到工程目录下
cd 工程名4.在spiders子目录中创建一个爬虫文件
这里不需要切换目录在项目目录下即可。 www.xxx.com是要爬取的网站。
scrapy genspider 爬虫文件名 www.xxx.com5.执行工程
在pycharm中直接执行是不管用的无效。应该再在终端中执行
scrapy crawl 爬虫文件名 # 执行的是爬虫文件setting文件中的参数
创建好项目后在项目的settings.py里更改老多的参数
# Obey robots.txt rules
ROBOTSTXT_OBEY False#显示指定类型的日志信息 而不显示其他乱七八糟的
LOG_LEVEL ERROR# 设置用户代理 浏览器类型
USER_AGENT Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36# 取消注释改行意味着开启管道存储。
# 300表示优先级数值越小优先级越高
ITEM_PIPELINES {weiboPro.pipelines.WeiboproPipeline: 300,
}
scrapy数据解析
爬取B站视频的作者和视频名称
代码为项目下weibo.py的代码。想爬取微博但是失败了改成爬B站 extract()可以将Selector对象中data参数存储的字符串提取出来对列表调用extract后将列表的每一个Selector对象中的data对应的字符串提取了出来将列表转为字符串 .join方法
title [......]
title .join(title)weibo.py 爬虫文件import scrapy# 导包失败右键项目目录 将目标标记为 源代码根目录# 爬取微博失败了返回为空。改为爬取B站了。
# 爬取B站的视频的名称和作者
class WeiboSpider(scrapy.Spider):name weibo# allowed_domains [weibo.com]start_urls [https://www.bilibili.com/]def parse(self, response):author []title []div_list response.xpath(//*[idi_cecream]/div[2]/main/div[2]/div/div[1]/div)print(数据长度为, len(div_list))for div in div_list:# xpath返回的是列表但是列表元素一定是Selector类型的对象# extract可以将Selector对象中data参数存储的字符串提取出来author(div.xpath(//div[classbili-video-card__info--right]//a/span[classbili-video-card__info--author]/text()).extract())# 对列表调用extract后将列表的每一个Selector对象中的data对应的字符串提取了出来title(div.xpath(//div[classbili-video-card__info--right]/h3/a/text()).extract())# 将列表转为字符串 .join方法# title .join(title)print(author)print(title)print(len(author), len(title))
scrapy持久化存储
基于终端指令
scrapy crawl weibo -o ./Bzhan.csv # weibo是爬虫文件名./Bzhan.csv是保存到本地的路径文件名
- 要求只可以将parse方法的返回值存储到本地的文本文件中
- 注意持久化存储对应的文本文件的类型只可以为json, jsonlines, jl, csv, xml, marshal, pickle
- 指令scrapy crawl xxx -o filePath
- 好处简介高效便捷
- 缺点局限性比较强数据只可以存储到指定后缀的文本文件中基于管道持久化存储操作
基于Spider的全站数据爬取
请求传参
scrapy爬取图片