用Python和大模型如何实现爬虫(爬虫篇)

前言

在数字化时代,数据挖掘与分析能力成为了一项重要技能。Google Colab,作为一个免费的云端Jupyter Notebook平台,为学习者和开发者提供了一个强大的工具,无需配置本地环境即可进行Python编程、数据分析乃至机器学习项目。

本文旨在引导读者迈出使用Colab的第一步,通过一个简单的Python爬虫示例,演示如何抓取网页数据,并利用阿里云Dashscope平台上的Qwen Turbo模型进行高级信息提取,展现从数据获取到智能分析的全过程。让我们一同探索如何在Colab上高效地进行数据探索与项目开发。

今天要带领大家爬取到的是豆瓣电影([movie.douban.com/chart]的前两个电影列表的信息,如下所示

image.png

Colab

登录Colab官网([colab.research.google.com/]) ,要进入Cloab官网,你需要登录或注册一个Google账号,科学上网。

image.png

点击文件里面新建笔记本 image.png

点击+ 代码,你就可以开始写代码啦

image.png

python爬虫

第一步:通过!pip install requests引入http请求库,!pip install beautifulsoup4引入beautifulsoup4库

!pip install requests
!pip install beautifulsoup4

点击运行按钮进行安装 image.png

image.png

第二步:引入请求库import requests ,用于发送 HTTP 请求和处理响应。引入 BeautifulSoup 库,用于解析 HTML 文档。

import requests  
from bs4 import BeautifulSoup 

第三步:定义一个函数,用于获取电影列表页面的 HTML 内容

  • 'User-Agent':要获得’User-Agent’,在浏览器右键点击检查,在控制台输入navigator.userAgent

image.png

  • all_movies_text = ''.join([movie.prettify() for movie in movies[:2]])遍历前两部电影,将其 HTML 内容添加到 all_movies_text 字符串中。

  • 通过response = requests.get(url, headers=headers)发送 HTTP GET 请求获取页面内容

  • movies = fetch_movie_list(url)调用 fetch_movie_list 函数获取电影列表页面的 HTML 内容

  • url = 'https://movie.douban.com/chart'

def 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'
  }
  response = requests.get(url, headers=headers)
  # 如果请求成功
  if response.status_code == 200:
    soup = BeautifulSoup(response.text, 'html.parser')
    movie_list = []  # 用于存储电影信息的列表
    movies = soup.select('#wrapper #content .article .item')  # 使用 CSS 选择器定位电影元素
    all_movies_text = ''.join([movie.prettify() for movie in movies[:2]])
    return all_movies_text  # 返回前两部电影的 HTML 内容
  else:
    print("Failed to retrieve content ")

url = 'https://movie.douban.com/chart'
movies = fetch_movie_list(url)

print(movies)

运行后获取到前两部电影的信息

image.png

第四步:prompt 字符串:prompt 是一个包含多行文本的字符串,使用了 Python 中的 f-string 格式化字符串的特性。在字符串中包含了一个名为 movies 的变量,这个变量可能是一个电影列表或者电影相关的信息。字符串中提供了一段说明,提示用户如何获取电影的各种信息,包括电影名、封面链接、简介、评分以及评论人数。提示要求使用括号中的单词作为属性名,并以 JSON 数组的格式返回这些信息。

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

得到结果 image.png

第五步:引入dashscope库

!pip install dashscope

image.png

第六步:使用 Dashscope 的 API 来与Qwen Turbo 的模型进行交互式对话。

  • 导入 dashscope 库 import dashscope
  • 设置了 API 密钥,这是用来与 Dashscope 的服务进行通信的凭证。

首先登录阿里云(dashscope.aliyun.com/ ),点击立即开通

image.png

登录后点击控制台,进入页面后点击API-KEY管理,获取api key image.png

image.png

  • 定义了一个名为 call_qwen_with_prompt 的函数,该函数用于向 Qwen Turbo 模型提供提示,并接收模型返回的响应。
  • 在函数中构造了一个消息列表messages,其中包含了用户提供的提示。
  • 使用 dashscope.Generation.call 方法调用 Qwen Turbo 模型 dashscope.Generation.Models.qwen_turb,传递消息列表作为输入messages = messages,指定要返回的响应消息result_messages = 'message'
  • 打印模型返回的响应print(response)
import dashscope
dashscope.api_key = 'sk-...'# 这里输入刚刚在阿里云获取的api key

def call_qwen_with_prompt():
  messages = [
      {
          'role': 'user',
          'content': prompt
      }
  ]
  response = dashscope.Generation.call(
      dashscope.Generation.Models.qwen_turbo,
      messages = messages,
      result_messages = 'message'
  )
  print(response)

call_qwen_with_prompt()

最后得到结果如下所示

image.png

Python和Js的区别

之前写了一篇用Node.js如何实现爬虫,那现在来对比一下两种语言的区别:

  1. 执行环境

    • JavaScript主要用于Web开发,通常在浏览器中执行,但也可以通过Node.js在服务器端执行。
    • Python则是一种通用编程语言,广泛应用于Web开发、数据科学、人工智能、系统管理等各个领域。
  2. 语法

    • JavaScript和Python有不同的语法结构和语法规则。例如,JavaScript使用分号作为语句结束符,而Python使用缩进来表示代码块。
    • JavaScript的语法受到C语言和Java的影响,而Python更注重代码的可读性和简洁性。
  3. 同步异步

    • JavaScript是一种事件驱动的语言,通常采用异步编程模式。它使用事件循环机制和回调函数来处理异步操作。
    • Python可以同步编程也可以异步编程。Python的标准库提供了asyncio等模块,支持异步编程,但也可以使用多线程或多进程来处理并发任务。
  4. 面向对象

    • JavaScript是一种面向对象的语言,但它的面向对象特性与传统的面向对象语言(如Java)有所不同。JavaScript使用原型继承而不是类继承。
    • Python是一种完全面向对象的语言,支持类和对象,具有传统的面向对象特性,包括封装、继承和多态。
  5. 类型系统

    • JavaScript是一种弱类型语言,变量的类型可以动态改变。
    • Python是一种强类型语言,变量在声明时就确定了其类型,并且类型转换需要显式地进行。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值