scrapy爬虫 extract()与extract_first()的问题

爬艺搜网展览信息时,原使用extract_first()爬取点击“展开阅读”后的数据失败,后发现页面源码含所有信息,非动态加载问题。将其改为extract()后可爬出所有数据。extract()返回数据存于列表,extract_first()返回结果中第一个值的字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在爬艺搜网的展览信息时,遇到展览信息的详情页里的“展览介绍”有点击“展开阅读”按钮,在用以下代码爬取时始终爬不到点击了“展开阅读”之后的数据。
网页前端页面:
艺搜网展览详情页
网页源码:
网页源码
原来爬取的代码:

item1['description'] = response.xpath('//div[@class="exText"]/text()').extract_first()

问题所在:可以看到,不管是否点击了“展开阅读”,页面源码中都有所有的信息,因此可以判断不是动态加载的问题。(之前一直以为是动态加载的问题,然后看了好几天哭唧唧)
原来的代码用的是extract_first(),把它改为extract()之后就可以爬出所有数据了。
修改后的代码:

item1['description'] = response.xpath('//div[@class="exText"]/text()').extract()

extract()与extract_first()区别

extract()返回的所有数据,存在一个list里。
extract_first()返回的是一个string,是extract()结果中第一个值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值