简单抓取糗事百科的段子,并以txt格式保存

目录

目前还没有使用框架,个人也觉得,先理解底层原理再去学习使用框架,地基不牢,地动山摇.

#-----codeing:utf-8-----

import urllib.request
import re
#import urllib.error

headers = ("User-Agent", "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)


def spider(max):
    for i in range(0, int(max)):
        url = "https://www.qiushibaike.com/text/page/"+str(i+1)
        data = urllib.request.urlopen(url).read().decode("utf-8", "ignore")
        pat_1 = "<h2>(.*?)</h2>"                       #author
        pat_2 = '<div class="content">.*?<span>(.*?)</span>.*?</div>'   #content

        author = re.compile(pat_1, re.S).findall(data)
        content = re.compile(pat_2, re.S).findall(data)

        file = open("D:\study\\python\\糗事百科.txt", "a", encoding='utf-8')
        for j in range(0, len(author)):

            '''
            print(author[j])
            print(content[j])
            print("------------------------")
            '''
            content[j] = content[j].replace('<br/>', '\n') #将内容里面的<br/>标签替换成换行符
            file.write(author[j]+content[j]+ "\n"+ "---------------")
        file.close()


max_page = input("请输入需要爬取到第几页:")
spider(max_page)

部分结果:

歌歌哒f

由于有事要用到结婚证复印件,结果发现结婚证和包包一起被人偷了又和媳妇去补办一个,
出来时媳妇拿着补办的结婚证:哎呀你又结婚了恭喜二婚…
我连忙回道:同喜同喜,媳妇:本以为解脱了结果又是你……


芭蕉窗下听雨声

朋友打语音说:你说你以前多厉害的一个人,现在除了喝酒,挖野菜,遛狗啥都不干了?
我乖乖的说:我厌倦了成人的勾心斗角,喜欢研究植物和动物了。
谁知他说:我是高级动物,你研究下……
[笑哭][笑哭]

也考虑使用多线程,但是有一个问题:线程冲突,内容输出重叠。