python中使用re正则实现段子网“一句话段子”分类下所有段子

phpmaster 2019-12-26 PM 1248℃ 0条

微信截图_20191226180359.png

# 导入requests 模块
import requests
# re 正则模块
import re
import os
import datetime
# 1.创建当前日期为名称的目录
today=datetime.date.today()
my_dir = './data/'+str(today)
# isdir 判断目录是否存在
# 创建目录前先判断目录是否存在,如果不存在则创建
if not os.path.isdir(my_dir):
    os.makedirs(my_dir)

# 2.根据url获取对应的页面数据
def get_content(url):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    }
    return requests.get(url=url, headers=headers)

# 3.从第一页取出一共多少页
url = "http://duanziwang.com/category/%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%AE%B5%E5%AD%90/"
page_content = re.findall('<span class="page-number">(.*)</span>',get_content(url).text)
total_pages = int(page_content[0].split()[-2])

filename = my_dir + "/all.txt"
f = open(filename, 'w', encoding="utf-8")
# 4.循环遍历每一页的数据
for i in range(1,total_pages):
    url = "http://duanziwang.com/category/%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%AE%B5%E5%AD%90/"+str(i)
    page_text = get_content(url)
    content = re.findall('<h1 class="post-title"><a.*>(.*)</a></h1>',page_text)
    for k,v in enumerate(content):
        f.write(str(k)+v+"\n")
        print("抓取:"+v)

    print("第%d页数据抓取结束。。。"%i)
print("所有页面数据已经完全获取")
f.close()
标签: 爬虫

非特殊说明,本博所有文章均为博主原创。

评论啦~


点击这里给我发消息
召唤看板娘