我对https://list.jd.com/list.html?cat=652,654,831这个页面进行爬取。使用scrapy-splash这些都没有问题,就是商品名称这块有问题。代码片段如下:
temp = str(sel.xpath('div/div[3]/a/em/text()').extract_first()) # print(type(item['name'])) pattern = re.compile("\S.*",re.S) # 从第一个非空字符起 匹配商品名称 good_name = re.search(pattern, temp) print(type(good_name)) item["name"] = good_name.group()
报错信息:
File "C:\Users\Administrator\PycharmProjects\jdcamera\jdcamera\spiders\jdcameraSpider.py", line 48, in parse
item["name"] = good_name.group()
AttributeError: 'NoneType' object has no attribute 'group'
如果不加group能够查找到需要的信息,某一个商品名称匹配结果如下:
'name': <_sre.SRE_Match object; span=(15, 79), match='佳能(Canon)PowerShot G7 X Mark II 数码相机 (约2010万像素 DI>,
这说明匹配结果不是空的啊,为什么报错信息会提示‘NoneType’
我发现这就是一个一位列表,又试了不用正则,发现可以得到想要的答案:
'name': '佳能(Canon)PowerShot G7 X Mark II 数码相机 (约2010万像素 DIGIC 7 1.0',