要确保服务器上的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页并且没有爬取到全部数据,可能有以下几个原因:

  1. 起始url设置不正确,需要确保起始url能够正确访问到需要爬取的页面。
  2. 爬取的页面数量设置不正确,可以通过调整CLOSESPIDER_PAGECOUNT参数来控制爬取的页面数量。
  3. 爬取速度过快,可能被目标网站的反爬措施识别并阻止。可以通过设置DOWNLOAD_DELAY参数来调整爬取的速度。

可以根据具体情况逐个排查以上可能的原因,并进行相应的调整

def parse_itemself response #对每一页页面信息进行解析提取诗词编号哦标题和对应的诗词详情url div_list=responsexpathdivclass=card shici_card for div in div_list item = FenbushiItem number=d

原文地址: http://www.cveoy.top/t/topic/hSC3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录