python中一个简单的对内涵段子的爬取

2018-07-19  本文已影响0人  carebon

首先对内涵段子吧的URL进行分析,会发现内涵段子吧的分页只改变了末尾的字符。

例如,https://www.neihan8.com/article/index_2.html,中的Index_X,改变的只有X。所以我们对URl进行处理。

    def load_page(self, page):
        '''
            发送内涵段子url请求
            得到html源码
        '''
        url = "https://www.neihan8.com/article/index_"+ str(page) +".html"
        #url = "https://www.neihan8.com/article/index_2.html"
        user_agent="Mozilla/5.0(compatible; MSIE 9.0; Window NT 6.1; Trident/5.0;"
        hearers = { "User_Agent":user_agent}

        req = urllib.request.Request(url, headers = hearers)

        response = urllib.request.urlopen(req)

        html = response.read()
        # print (html)
        new_html = html.decode('utf-8')

对字符串进行处理,筛选

        #用正则表达式过滤 <div class="desc"> </div>
        pattern = re.compile(r'<div.*?class="desc">(.*?)</div>')
        item_list = pattern.findall(new_html)
        return item_list

对所取到的文本存储到txt文件中

    def write_to_file(self,txt):
        '''
          将text文本  存入file_name文件中
        '''
        print("正在存储文件:")
        #1打开文件
        f = open('./myStory.txt','a')
        #2读写文件
        f.write(txt)
        #3关闭文件
        f.write('.........................................')
        f.close()

定义一个虚构函数,用来控制是否爬取下一个分页

def __init__(self):
        self.enable = True
        self.page = 3 #第几页
        pass
上一篇 下一篇

猜你喜欢

热点阅读