素材牛VIP会员
python爬虫程序中能否返回指定数量的匹配记录(re模块)
 十***刻  分类:Python  人气:1105  回帖:8  发布于6年前 收藏

re.findall()返回的是所有匹配记录

 标签:python

讨论这个帖子(8)垃圾回帖将一律封号处理……

Lv6 码匠
捂***功 移动开发工程师 6年前#1
# ['1', '2', '3', '4'] # ['1', '2']

你可以用切片操作返回来处理findall返回的结果来达到你的目的

or

import re                                                          

count = 0
# The end point number
endpoint = 2

p = re.compile(r'\d+')
for m in p.finditer('one1two2three3four4'):
    count += 1
    if count > endpoint: break
    print m.group()
    
Lv5 码农
橙***哒 JAVA开发工程师 6年前#2
import re
 
p = re.compile(r'\d+')
print p.findall('one1two2three3four4')
print p.findall('one1two2three3four4')[0:2]
 
Lv4 码徒
青***e Linux系统工程师 6年前#3

try beautifulSoup
http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#find

Lv4 码徒
阵***香 交互设计师 6年前#4
# 1 2
Lv2 入门
一***句 职业无 6年前#5

len()一下,知道长度了就能制定数量了。我理解的对吗?

Lv3 码奴
雷***y Web前端工程师 6年前#6
output
Lv6 码匠
qi***un 技术总监 6年前#7
output
Lv1 新人
黄***o JS工程师 6年前#8

findall()返回的是一个列表,你需要对其中内容进行一步操作时,例如直接访问或写入数据库的时候,遍厉列表时用一个变量限制一下就行了。

还是我理解错了你的意思?

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取