学了一晚上写的第一个爬虫,先爬一下自己博客的所有文章标题。

# -*- coding:utf-8 -*-

import requests
from bs4 import BeautifulSoup

# 将爬下来的博客标题保存到本地文本文件
f = open('title.txt', 'w')
# 存储博客标题数组
allBlog = []

# 获取网页文本源代码
def GetHtmlText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = 'utf-8'
        return r.text
    except:
        return ""

# 使用BeautifulSoup根据树状标签寻找需要爬取的信息
def FillBlogiList(soup):
    Titles = soup.find_all('h4')
    for Title in Titles:
        Tagas = Title.find_all('a')
        for Taga in Tagas:
            # 这里还不会去除子标签,先用文本切片手动去除
            TagaText = Taga.get_text()
            AddText = TagaText[32:-6]
            allBlog.append(AddText)

# 输出爬取内容
def SaveBloglist(num):
    for i in range(num):
        # 写入本地文本文件中
        f.write('%s\n' % allBlog[i])
        # print(allBlog[i])

# 程序主函数入口
def main(num):
    # 博客页数
    pages = 5
    for i in range(1, pages + 1):
        # 要爬取的网页
        url = "https://blog.csdn.net/Tony5t4rk/article/list/" + str(i)
        # 获取网页文本源代码
        html = GetHtmlText(url)
        soup = BeautifulSoup(html, "html.parser")
        # 使用BeautifulSoup根据树状标签寻找需要爬取的信息
        FillBlogiList(soup)
    # 输出爬取内容
    SaveBloglist(num)
    f.close()

if __name__ == '__main__':
    main(94)    # 目前总共94篇文章

运行结果: