首页 新闻 搜索 专区 学院

新手爬虫正则的问题

0
悬赏园豆:5 [已解决问题] 解决于 2018-09-01 00:26

我对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’

从MH到其他的主页 从MH到其他 | 初学一级 | 园豆:140
提问于:2018-09-01 00:10
< >
分享
最佳答案
0
temp = sel.xpath('string(div/div[3]/a/em)').extract()
item['name'] = temp[0].strip()

我发现这就是一个一位列表,又试了不用正则,发现可以得到想要的答案:

'name': '佳能(Canon)PowerShot G7 X Mark II 数码相机 (约2010万像素 DIGIC 7 1.0',

从MH到其他 | 初学一级 |园豆:140 | 2018-09-01 00:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册