爬虫_020_scrapy_管道
封装管道
1.在items文件中定义结构数据
2.在爬虫文件中获取数据并将其通过yield方法交给管道【pipelines】
3.开启管道【settings中取消ITEM_PIPELINES 的注释】
4.在管道中定义两个函数【open_spider(self, spide)、close_spider(self, spider)】
这两个函数中,open放在主体函数process_item之前,close放在之后
1. items -- 定义结构数据【就是在items文件中添加你需要爬取的数据类型】
-
-
import scrapy
-
-
-
class DangdangwebItem(scrapy.Item):
-
# define the fields for your item here like:
-
# name = scrapy.Field()
-
-
# 图片
-
img_src = scrapy.Field()
-
# 名字
-
name = scrapy.Field()
-
# 价格
-
price = scrapy.Field()
2.获取数据
在scrapy中可以在xpth给出的数据后再使用xpath【当当网案例】
-
class DdwSpider(scrapy.Spider):
-
name = "ddw"
-
allowed_domains = ["category.dangdang.com"]
-
start_urls = ["http://category.dangdang.com/cp01.01.04.00.00.00.html"]
-
-
# 下载第一页
-
def parse(self, response):
-
'''
-
pipelines --- 下载数据
-
items --- 定义数据结构
-
name_xpath: //a[@dd_name="单品图片"]/img/@alt
-
img_src_xpath: //a[@dd_name="单品图片"]/img/@src
-
price_xpath: //span[@class="search_now_price"]/text()
-
'''
-
li_list = response.xpath('//ul[@id="component_59"]/li')
-
for li in li_list:
-
# 因为第一张的图片地址并不在data-original中,而是再src中,所以这里需要做处理
-
img_src = li.xpath('.//img/@data-original').extract_first()
-
if img_src:
-
img_src = img_src
-
else:
-
img_src = li.xpath('.//img/@src').extract_first()
-
name = li.xpath('.//img/@al
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfibig
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13