Scrapy如何提取维基百科表格首列的完整合并文本?
解决方法
核心思路是先按单元格分组提取,再对单个单元格内的文本片段做拼接,避免跨单元格的文本被打散。
实现代码如下:
result = [] for table in response.css('.wikitable'): # 遍历当前表格所有第一列的单元格节点 for cell in table.css('td:nth-child(1)'): # 提取单个单元格内所有文本片段,拼接为完整字符串后去除首尾空白 full_text = ''.join(cell.css('::text').getall()).strip() result.append(full_text)
运行后得到的result就是你期望的输出格式。
如果需要处理单元格内的换行、连续空格等格式问题,可以用以下代码做空格归一化处理:
full_text = ' '.join(''.join(cell.css('::text').getall()).split())
这个写法会自动将所有连续的空白字符(换行、空格、制表符等)合并为单个空格,同时去除首尾空白。
内容的提问来源于stack exchange,提问作者Michael Hsieh
相关产品推荐
相关产品推荐

