智驭信息潮流:Python爬虫融合AI,解锁创意新纪元

前言

在当今这个数据洪流的时代,每分每秒都有海量信息在全球网络的脉络间穿梭。如何在浩瀚的信息海洋中脱颖而出,成为众多内容创作者面临的首要挑战。正是洞察这一需求,"智驭信息潮流:Python爬虫融合AI,解锁夺目标题创意新纪元" 应运而生。这篇指南将带您探索技术的前沿,揭示如何巧妙结合Python爬虫的强大抓取能力与人工智能的深度学习智慧,共同解码吸引眼球的标题艺术。我们将揭开精准数据挖掘与智能内容创造的神秘面纱,教会您如何在瞬息万变的数字世界中,以独特而富有创意的标题,引领潮流,捕获每一个浏览者的心。

1.获取AI密钥

我们访问阿里云AI dashscope.aliyun.com/ 网站,注册登录成功之后点击控制台。

然后获取API密钥

记得保存哦,这在我们后面操作时会发挥作用。

2.引入库

我们将在谷歌colab上进行操作。

yaml 复制代码
# python http 请求库
!pip install requests
# python dom 查找
!pip install beautifulsoup4

requests 是Python中用于发送HTTP请求的最简单易用的库之一。它允许你以非常直观的方式进行网络请求

BeautifulSoup 是一个用于解析HTML和XML文档的Python库,它构建在解析器(如lxml、html.parser等)之上,提供了一个简易的、面向对象的API来导航、搜索、提取数据。

看到这里就说明我们响应成功啦!

3.进行页面信息抓取

ini 复制代码
import requests  # 导入requests库,用于发送HTTP请求
from bs4 import BeautifulSoup  # 导入BeautifulSoup库,用于解析网页内容

def fetch_movie_list(url):  # 定义一个函数fetch_movie_list,参数为url
    headers = {  # 设置请求头信息
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0'  # 模拟浏览器请求的User-Agent
    }  
    response = requests.get(url, headers=headers)  # 发送GET请求至指定url,携带请求头headers
    
    if response.status_code == 200:  # 判断请求是否成功(HTTP状态码为200)
        soup = BeautifulSoup(response.text, 'html.parser')  # 使用BeautifulSoup解析返回的网页内容
        
        movie_list = []  # 初始化一个空列表用于存储电影信息
        movies = soup.select('#wrapper #content .article .item')  # 使用CSS选择器定位到电影条目元素
        
        # print(len(movies))  注释掉的代码,原本用于打印选取的电影条目数量
        
        all_movies_text = ''.join([movie.prettify() for movie in movies[:2]])  # 将前两个电影条目的BeautifulSoup对象转换为字符串并连接起来
        
        # print(all_movies_text)  注释掉的代码,原本用于打印合并后的电影信息文本
        
        return all_movies_text  # 返回处理后的电影信息文本
    else:
        print('Failed')  # 请求失败时打印"Failed"

url = 'https://movie.douban.com/chart'  # 豆瓣电影排行榜URL
movies = fetch_movie_list(url)  # 调用定义的函数获取电影信息
print(movies)  # 打印出获取的电影信息

这段代码的作用是从豆瓣电影排行榜网页(https://movie.douban.com/chart)上抓取并解析前两部电影的信息。让我们分3步走:

  1. 导入所需库:

    • requests库用于发送HTTP请求,获取网页内容。
    • BeautifulSoup库用于解析HTML文档,提取所需数据。
  2. 定义函数 fetch_movie_list(url) :

    • 设置请求头 (headers): 包含伪装成一个常见的浏览器User-Agent字符串,让服务器误以为请求来自一个正常的浏览器。

    • 发送请求 : 使用requests.get(url, headers=headers)发送GET请求到指定的URL。

    • 检查响应状态 : 如果响应的status_code为200,表示请求成功。

      • 解析内容 : 使用BeautifulSoup(response.text, 'html.parser')解析网页内容。
      • 初始化变量 : 创建空列表movie_list和使用CSS选择器选取电影元素#wrapper #content .item下的所有.item
      • 提取前两部电影信息 : 将前两部电影的BeautifulSoup对象通过prettify()转化为格式化的字符串并拼接成all_movies_text
      • 返回结果或失败提示 : 成功则返回all_movies_text,否则打印"Failed"。
  3. 调用函数抓取并打印电影信息:

    • 设置URL为豆瓣电影排行榜的地址。
    • 调用movies = fetch_movie_list(url)获取电影信息。
    • 打印出print(movies)抓取到的电影信息。

成功之后,我们会出现如下

4.提供prompt

ini 复制代码
prompt = f"""
{movies}
这是一段电影列表,请获取电影名(name),封面链接(picture),简介(info),评分(score),评论人数(commentsNumber),
请使用括号的单词作为属性名,以JSON数组的形式返回
"""

我们要定义和AI交互的内容.

5.交互AI

ini 复制代码
import dashscope  # 导入dashscope库,用于调用通义的AI交互功能

dashscope.api_key = '自己的密钥'  # 设置dashscope的API密钥,用于认证和授权

def call_qwen_with_prompt():  # 定义一个函数来调用Qwen并传递提示
    messages = [  # 初始化消息列表,包含一个字典
          {  # 第一条消息的定义
              'role': 'user',  # 角色为'user',表示这是用户发送的消息
              'content': prompt  # 使用之前定义的prompt变量,存放用户输入的提示内容
          }  # 结束第一条消息字典
      ]  # 结束消息列表
    
    response = dashscope.Generation.call(  # 用dashscope的Generation模块调用方法
          dashscope.Generation.Models.qwen_turbo,  # 指定模型为qwen_turbo,一个预训练好的模型
          messages=messages,  # 传入前面定义好的消息列表
          reasult_messages='message'  # 设置返回的消息类型为'message'
      )  # 结束调用
    
    print(response)  # 打印调用后的响应结果

call_qwen_with_prompt()  # 最后调用定义的函数

步骤如下:

  1. 导入dashscope库:

    • 引入dashscope库,这是一个封装了与DashScope平台交互的Python库,用于调用AI模型完成自然语言处理等任务。
  2. 设置dashscope.api_key:

    • 通过设置dashscope的API密钥,这是访问Dash API接口的认证凭证,确保请求能够被正确授权。
  3. 定义call_qwen_with_prompt函数:

    • 这个函数用来构造和发送用户给AI的请求,并接收处理结果。

    • messages: 初始化一个消息列表,包含一条消息字典,指明这是一个用户('role':'user')发送的内容。

    • dashscope.Generation.call: 使用dashscope的Generation模块调用方法来与AI模型交互。

      • dashscope.Generation.Models.qwen_turbo: 指定使用的AI模型名为wen_turbo,这是一个预训练好的模型专门处理特定任务的模型。
      • messages=messages: 传入构造好的用户消息给模型处理。
      • reasult_messages='message' : 指定返回的结果类型,期望是处理后的消息形式。
    • print(response) : 打印出AI模型处理后的响应内容,可能是回答、分析结果等。

  4. 调用call_qwen_with_prompt() : 直接调用定义好的函数,启动整个流程,实际发送请求并打印出AI的响应。

成功之后我们会得到如下结果(尤其注意状态码要200!)

恭喜你,我们又玩转了一次大模型!

相关推荐
游客52014 分钟前
设计模式-创建型-工厂方法模式
开发语言·python·设计模式·工厂方法模式
m0_7482398318 分钟前
Python毕业设计选题:基于django的民族服饰数据分析系统的设计与实现_hadoop+spider
python·django·课程设计
m0_7482349018 分钟前
Hmsc包开展群落数据联合物种分布模型分析通用流程(Pipelines)
开发语言·python
m0_7482455222 分钟前
Python大数据可视化:基于python大数据的电脑硬件推荐系统_flask+Hadoop+spider
大数据·python·flask
m0_7482370526 分钟前
Python毕业设计选题:基于python的酒店推荐系统_django+hadoop
python·django·课程设计
m0_748254091 小时前
100天精通Python(爬虫篇)——第113天:爬虫基础模块之urllib详细教程大全
开发语言·爬虫·python
小爬虫程序猿1 小时前
深入理解Jsoup与Selenium:Java爬虫的双剑合璧
爬虫·python·selenium
随便写写1 小时前
Pyside6 基础框架以及三种基础控件
python
夏娃同学1 小时前
基于Flask后端框架的均值填充
python·flask
HackKong1 小时前
Python与黑客技术
网络·python·web安全·网络安全·php