- 論壇徽章:
- 0
|
各位chinaunix的朋友們,大家好。今天繼續(xù)尋求您們的幫助。
今天試著用python寫了個獲取百度貼吧帖子第一頁內(nèi)容的小玩意,但是,很奇怪,在用正則取得樓主名字之后,卻無法再使用樓主的名字繼續(xù)獲得樓主發(fā)表的內(nèi)容;而通過手工指定卻可以。具體代碼如下:- #!/usr/bin/python
- #coding:utf-8
- import re,urllib2,sys
- def html_to_text(html):
- html = re.sub(r'<p>(.*?)</p>', r'\1\n', html)
- html = re.sub(r'<br>', r'\n', html)
- html = re.sub(r'\n\n', r'\n', html)
- html = re.sub(r'<[^<>]*>', '', html)
- html = html.replace('\r', '')
- return html.strip()
- url = 'http://tieba.baidu.com/p/1294878714'
- a = urllib2.urlopen(url).read()
- #開始創(chuàng)建文件
- fp = open('tstsss.txt','w')
- #開始找樓主
- findlouzhu = re.findall(r'author:.*',a,re.M)
- louzhu = ''
- for louzhu in findlouzhu:
- louzhu = re.sub(r'author:"', r'', louzhu )
- louzhu = re.sub(r'",',r'',louzhu )
- #看看樓主是誰
- print louzhu
- #此處很奇怪,從正則表達式匹配出來的樓主,和下面賦值的時一樣的,但是,
- #下面如果使用正則表達式匹配取得的變量的話,卻無法取得內(nèi)容并生成內(nèi)容。
- #而使用手動賦值的話,確可以獲取到樓主的發(fā)布的內(nèi)容。這是什么原因?
- #louzhu = 'pbs6666'
- content = re.findall(r'<li class="d_name">.*?</cc>',a,re.M|re.S)
- for i in content:
- if re.search(louzhu,i):
- abc = re.findall(r'<cc>.*?</cc>',i,re.M|re.S)
- for j in abc:
- fp.write(html_to_text(j)+'\n')
- fp.close()
復(fù)制代碼 |
|