不多说,直接上代码
import re
import requests
class Duanzi(object):
def __init__(self):
self.baseURL = 'http://www.neihan8.com/article/index'
self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'}
self.page = 1
self.pattern_page = re.compile(r'<div class="desc">(.*?)</div>', re.S)
self.pattern_content = re.compile(r'&(.*?);|<(.*?)>|\s| >')
def loadpage(self):
'''抓取每一页所有的段子'''
print("正在抓取第%s页段子" % self.page)
if self.page==1:
url = self.baseURL +'.html'
else:
url = self.baseURL + '_'+str(self.page) + '.html'
html_gbk = requests.get(url, headers=self.headers).content
html = html_gbk.decode('utf8')
content_list = self.pattern_page.findall(html)
self.write_page(content_list)
def write_page(self, content_list):
'''把每一页的段子内容写入到磁盘文件中'''
print("正在写入第%s页的段子内容" % self.page)
with open('duanzi.txt', 'a') as f:
for content in content_list:
content2 = self.pattern_content.sub("", content)
f.write(content2)
f.write('\n\n')
def duanzi_spider(self):
while True:
command = input("亲!请按回车键继续爬虫(按q键退出...):")
if command == 'q':
break
self.loadpage()
self.page += 1
if __name__ == '__main__':
duanzi = Duanzi()
duanzi.duanzi_spider()