我在做一个爬虫,目标网页之一是: http://district.ce.cn/newarea/roll/201702/07/t20170207_20020701.shtml
因为报告往往不止一页,所以,我需要从网页的源代码中找到页面总数,用 BeautifulSoup + lxml 解析后的部分网页代码如下:
<!--
function createPageHTML(_nPageCount, _nCurrIndex, _sPageName, _sPageExt){
if(_nPageCount == null || _nPageCount<=1){
return;
}
//中间代码省略
}//函数结束符
//WCM 置标
createPageHTML(4, 0, "t20170207_20021665", "shtml");
//-->
问题:如何用 Python 正则表达式匹配到 createPageHTML(4, 0, "t20170207_20021665", "shtml");
字符串第一个括号后面的数字?那个数字是页面总数。
本人正则表达式不够熟练,目前我用的办法是,但是觉得不够好:
tmp_str = re.findall(r'[^createPageHTML(].*[$,]', str(tmp_html))
page_sum = tmp_str[1][16]
1
lniwn 2017-12-17 12:03:08 +08:00 via iPhone 1
如果是我,我会这样做:
1 取出所有参数 params=re.search('createPageHTML\((.*?)\)', html_page).group(1) 2 分割参数列表 params.split(',') 手机码字不便,trip 等操作就没写了。 |
2
aihimmel 2017-12-17 12:03:09 +08:00 1
(?<=createPageHTML\()\d+
|
3
Liyuu 2017-12-19 11:54:13 +08:00 1
page = re.findall(r"createPageHTML\((.+?),",str(wb_text))[1]
wb_text 是你整个网页的文本 |