用正则表达式,重新做了一下之前做的案例。“爬去百度贴吧小说”。运行了代码,发现还可以,只不过比较可惜的是,爬去的代码中有乱码。如图所示。
中间有一段是乱码,很遗憾
我目前想到的解决办法是 重新设定正则规则代替 .*?
但是目前还没有测试成功。
下面贴上我的代码:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#爬去百度贴吧小说,并且以text格式保存到本地,联系一下保存数据。
import re
import requests
url = "http://tieba.baidu.com/p/4944407708?see_lz=1"
wb_data=requests.get(url).text
key=r'class="d_post_content j_d_post_content "> 以后每一章都有誊写人,大家可以在最喜欢的人下面评论哦</div>'
p1 = r'd_post_content j_d_post_content ">.*?</div>'
pattern = re.compile(p1)
content = pattern.findall(wb_data)#[0].replace(' ','') #content 是一个列表集合。
t=1
for i in content:
y = i.replace(' ','').replace('<br>','').replace('d_post_content j_d_post_content ">','').replace('</div>','')
#用replace方法替换掉了许多不行要的结构。
with open('小说 %s' %t + '.txt','w') as f:
#当用open函数,以.txt文件结尾的时候,是可以储存并打开的。但是将参数,设置成.docx的时候,是没办法用word文件打开的,为何?
t=t+1
f.write(y)
print('ok')
print(content)
以上代码,经过测试,能够运行,但是有一点瑕疵而已。
收货有两点。
第一,原来replace方法可以这么用。
第二,正则表达式还需要更完善一些。