爬虫案例分享

发布时间 2023-06-12 15:25:14作者: 克峰同学

案例

import requests #如果报红,电脑控制台执行:python -m pip install requests,下载即可
from bs4 import BeautifulSoup


title=[] #所有文章标题

#因为需要爬取的数据,不单单存在一个页面,所以需要分析目标网站的URL规律,构造出每一页的URL,并逐个爬取
for page in range(4): #目标网页总页数
    url = f'https://www.cnblogs.com/KeFeng/?page={page+1}' #目标网页,因为page是从0开始,但网页的第一页是从1开始,所以需要加1
    response = requests.get(url) #发起一个GET请求
    soup = BeautifulSoup(response.content, 'html.parser') #获取目标网页所有元素,目前跟我们按F12看见的内容一样
    #开始解析
    #使用find方法获取class为forFlow的标签,并使用find_all方法获取该div下的所有class为postTitle的div标签,也就是要爬取内容的标签
    recent_list = soup.find('div', {'class': 'forFlow'}).find_all('div', {'class': 'postTitle'})
    title.append(f'\n------------第{page+1}页数据-------------')
    for recent in recent_list:
        # 使用get_text()方法获取文本内容,也就是去除文本以外的内容
        # 使用strip()方法去除字符串开头和结尾的空格(包括换行符,制表符等空白字符)
        recent_title = recent.get_text().strip()
        title.append(recent_title) #将解析完的内容添加到列表

# 循环输出爬取的内容
for t in title:
    print(t)


#将爬取结果生成一个word文档
from docx import Document

document = Document() # 创建一个新的 Word 文档

# 将列表添加到文档中
for item in title:
    document.add_paragraph(item, style='List Bullet')

document.save('爬取结果.docx') # 保存文档

注意

  • 爬取过程需要网络