![](https://csdnimg.cn/release/download_crawler_static/86335993/bg3.jpg)
标签里面,所以我们可以写如下的正则表达式
1)提取帖子标题
在浏览器中审查元素,或者按F12,查看页面源代码,我们找到标题所在的代码段如下:
所以我们要提取 <h3> 中的内容,因为一开始可以查看整个界面的原代码,查看里面含有 <h3> 标签的不止一个。所
以需要写正则表达式来匹配,如下:
然后,我们可以写个获取标题的方法
2)提取帖子页数
同样地,帖子总页数我们也可以通过分析页面中的共?页来获取。
所以我们的获取总页数的方法如下
3)提取正文内容
审查元素,可以看到百度贴吧每一层楼的主要内容都在
<h3class="core_title_txtpull‐lefttext‐overflow"title="纯原创我心中的NBA2014‐2015赛季现役
50大"style="width:416px">纯原创我心中的NBA2014‐2015赛季现役50大</h3>
<h3class="core_title_txt.*?>(.*?)</h3>
#获取帖子标题
defgetTitle(self):
page=self.getPage(1)
pattern=re.compile('<h3class="core_title_txt.*?>(.*?)</h3>',re.S)
result=re.search(pattern,page)
ifresult:
#printresult.group(1)#测试输出
returnresult.group(1).strip()
else:
returnNone
<liclass="l_reply_num"style="margin‐left:8px"><spanclass="red"style="margin‐
right:3px">4784</span>回复贴,共<spanclass="red">36</span>页</li>
#获取帖子一共有多少页
defgetPageNum(self):
page=self.getPage(1)
pattern=re.compile('<liclass="l_reply_num.*?</span>.*?<span.*?>(.*?)</span>',re.S)
result=re.search(pattern,page)
ifresult:
#printresult.group(1)#测试输出
returnresult.group(1).strip()
else:
returnNone