Python网页抓取:如何从谷歌搜索结果中筛选13位EAN编码
筛选EAN编码的实现方法
你可以通过正则表达式匹配独立的13位纯数字串,直接从已提取的文本中筛选出符合要求的EAN编码。
实现步骤
- 第一步:导入Python内置的
re正则模块 - 第二步:使用匹配规则
r'\b\d{13}\b'做筛选,其中\b为单词边界符,可避免从更长的数字串(例如15位订单号、18位身份证号)中误截取中间的13位数字 - 第三步:调用正则匹配方法从已提取的文本中查找符合要求的内容即可
完整修改后的代码示例
import re # 原有抓取逻辑 url = "https://www.google.com/search?q=%22ean%22+%22Rowenta%20X-Plorer%20Serie%2075%20RR7687%22&client=firefox-b-d&ei=8W5cYdi-Kc-ckgW-54LIDA&ved=0ahUKEwiY-_zeyrPzAhVPjqQKHb6zAMkQ4dUDCA0&uact=5&oq=%22ean%22+%22Rowenta%20X-Plorer%20Serie%2075%20RR7687%22" f = s.get(url) eanfield = f.html.xpath('//*[@id="center_col"]', first=True) ean_text = eanfield.text # 新增EAN筛选逻辑 ean_list = re.findall(r'\b\d{13}\b', ean_text) # 确定只有一个目标EAN时可直接取第一个匹配结果 if ean_list: target_ean = ean_list[0] print(target_ean)
优化适配方案
如果搜索结果中出现多个13位独立数字,可以结合关键词进一步过滤,优先提取EAN标识附近的13位数字,正则可调整为r'EAN\D*?(\d{13})\b',适配EAN和编码之间存在空格、冒号、中文等分隔符的场景。
内容的提问来源于stack exchange,提问作者lanavargas2002
相关产品推荐
相关产品推荐

