def parse_itemself response #对每一页页面信息进行解析提取诗词编号哦标题和对应的诗词详情url div_list=responsexpathdivclass=card shici_card for div in div_list item = FenbushiItem number=d
要确保服务器上的number和title都是utf-8编码,可以在代码中添加编码转换的步骤。修改代码如下:
def parse_item(self, response):
# 对每一页页面信息进行解析,提取诗词编号哦,标题,和对应的诗词详情url
div_list = response.xpath('//div[@class="card shici_card"]')
for div in div_list:
item = FenbushiItem()
number = div.xpath('./div[1]/span/text()').extract_first().encode('utf-8')
title = div.xpath('./div[2]/h3/a/text()').extract_first().encode('utf-8')
item['number'] = number
item['title'] = title
yield item
至于为什么一直只爬取到1页并且没有爬取到全部数据,可能有以下几个原因:
- 起始url设置不正确,需要确保起始url能够正确访问到需要爬取的页面。
- 爬取的页面数量设置不正确,可以通过调整
CLOSESPIDER_PAGECOUNT参数来控制爬取的页面数量。 - 爬取速度过快,可能被目标网站的反爬措施识别并阻止。可以通过设置
DOWNLOAD_DELAY参数来调整爬取的速度。
可以根据具体情况逐个排查以上可能的原因,并进行相应的调整
原文地址: http://www.cveoy.top/t/topic/hSC3 著作权归作者所有。请勿转载和采集!