使用open-interpreter 0基础创建爬虫采集数据

8/9/2024 爬虫

之前写了一篇关于node.js爬虫的文章。想通过几个网站案例教大家用node.js写爬虫,但是一直没抽出时间来写,之后用了下open-interpreter感觉挺好用,而且用来写爬虫的话也不错,挺适合0基础的,于是准备拿之前准备的网站教大家用open-interpreter写爬虫采集数据。 俗话说得好,工欲善其事必先利其器。 所以我们要先做好前期准备:

  • 一台电脑
  • 一个脑子

这里不知道大家都是什么水平,所以我们从头开始,首先是安装一下python环境,首先访问python官网 (opens new window) python官网 鼠标悬浮在Downloads上,会有电脑系统选项,选择你的电脑系统,我这里是Windows,所以我就选择了红框中的。 点击Windows后,会跳转到新的网页 (opens new window) python下载页 之后根据我们的系统位数来选择下载哪个版本,我这里是64位,所以就选了Windows installer (64-bit) (opens new window) 点击后会直接下载,下载后双击打开 python安装界面 首先勾选下面两个单选框,之后直接Install Now即可,但是这样会将python安装在c盘,如果 不想安装在c盘以及想自己配置的话,可以选择Customize installation。这里就不过多赘述了。可以参考这篇文章最新Python安装详细教程 (opens new window) 安装好后,我们来安装今天的主角open-interpreter。 打开cmd窗口,然后运行pip install -i https://mirrors.cloud.tencent.com/pypi/simple open-interpreter等待一段时间后,会出现安装成功提示(Successfully installed xxxx)。如下图所示 pip安装open-interpreter成功 之后我们执行一下这个命令interpreter --profiles,会报错,不过不要着急,我们要的就是错误。 interpreter --profiles 这里会提示系统找不到指定的文件。: 'C:\\Users\\Administrator\\AppData\\Local\\open-interpreter\\open-interpreter\\profiles'我们根据这个提示去创建对应的文件夹即可。 然后在profiles文件夹中创建一个my_profile.yaml文件 粘贴下面的数据

llm:
  model: "deepseek-chat"
  temperature: 0
  api_key: "sk-"  # Your API key, if the API requires it
  api_base: https://api.deepseek.com  # The URL where an OpenAI-compatible server is running to handle LLM API requests
  # api_version: ...  # The version of the API (this is primarily for Azure)
  max_output: 4096  # The maximum characters of code output visible to the LLM
  
# Computer Settings
computer:
  import_computer_api: True # Gives OI a helpful Computer API designed for code interpreting language models


multi_line: True # If True, you can input multiple lines starting and ending with ```

version: 0.2.5  # Profile version (do not modify)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

这里我用的是deepseek,优点就是便宜,缺点就是便宜,如果不会注册可以看。 填写好自己的信息后,保存。 之后随便找个文件夹,在该文件夹打开cmd。 输入interpreter --profile my_profile.yaml interpreter --profile my_profile.yaml 和图片一致就是正确的,当然如果你前面填了不同了模型,那么应该出现的就是对应的模型。

之后就是写prompt,写prompt是门艺术。 我这里以我的博客举例,采集博客文章信息,并存储到一个txt中。

访问https://www.datehoer.com,获取博客信息。首先通过'body > section > div > div > div.column.order-2.column-main.is-8-tablet.is-8-desktop.is-8-widescreen > div:nth-child(1) > article > h1 > a'获取每篇文章链接,之后跟博客网址拼接成真实url访问获取对应博客文章详情。标题通过'body > section > div > div > div.column.order-2.column-main.is-8-tablet.is-8-desktop.is-8-widescreen > div:nth-child(1) > article > h1'获取,正文内容通过'body > section > div > div > div.column.order-2.column-main.is-8-tablet.is-8-desktop.is-8-widescreen > div:nth-child(1) > article > div.content'获取正文内容。然后将这些数据拼成一个个json列表,写入article.txt文件中,如果需要通过pip安装依赖库,请增加-i https://mirrors.cloud.tencent.com/pypi/simple来设置源
1

这里直接无脑按y即可,输入y然后回车。 interpreter install 然后等一会就会写出代码,这里我们继续按y执行。 interpreter's code 等待一会后,看下运行结果,大体意思是这段代码执行时没有发生任何错误,通常意味着脚本执行成功了。如果要确认是否按照预期工作,请查看articles.txt文件。 interpreter result 可以看到采集的结果还可以,可以正常使用。 interpreter采集结果 如果结果不符合预期的话,可以继续对话,来进行修改。

这里我做了下修改,然后就出现问题了。采集到的内容乱码了,而且只有一条数据。 image 这里看到,我们的selector只能查到一篇数据,而我们应该是一个通用的,可以查到所有文章链接的selector。所以我们需要继续修改提示词。 我直接说了我们要获取到列表而非单独的url,然后interpreter会自己修改代码,然后执行。 image 这里它报错了,我们不去管他,他会自己修改代码解决错误。 image 看起来有模有样了。 image 还是g了,但是我们看导出的文件发现其实是可以了,只是乱码了而已。 image 我们这里提供多个selector给他,做一个例子让他总结出一个通用的selector。 但是还是出问题了,输出的文章内容还是乱码了。 image 我们来解决一下乱码问题。 image image 但是依然不行,我们继续跟他说不可以,然后他就会提供解决方案。 但是他给出的方案依然解决不了问题,所以我给了他一点小小的帮助。 我说应该是response.text的编码有问题,应该用response.content重新编码,然后输出的内容就成功了。 image 所以其实纯0基础小白用起来还是挺难的,不过这些错误我觉得可以人工去百度一下,然后找到解决方案再发给ai。 csdn解决方案

访问https://www.datehoer.com,获取博客信息。首先通过'body > section > div > div > div.column.order-2.column-main.is-8-tablet.is-8-desktop.is-8-widescreen > div:nth-child(1) > article > h1 > a'获取每篇文章链接,之后跟博客网址拼接成真实url访问获取对应博客文章详情。标题通过'body > section > div > div > div.column.order-2.column-main.is-8-tablet.is-8-desktop.is-8-widescreen > div:nth-child(1) > article > h1'获取,正文内容通过'body > section > div > div > div.column.order-2.column-main.is-8-tablet.is-8-desktop.is-8-widescreen > div:nth-child(1) > article > div.content'获取正文内容。然后将这些数据拼成一个个json列表,写入article.txt文件中,如果需要通过pip安装依赖库,请增加-i https://mirrors.cloud.tencent.com/pypi/simple来设置源。你还应该根据文章url的selector找到一个通用获取文章列表的selector,而非直接使用我提供的,因为我提供的只是一个链接的selector
1

# 注册deepseek

访问:https://platform.deepseek.com/sign_up deepseek注册 输入对应的信息进行注册,然后注册成功进行登录,充钱。 deepseek面板 deepseek充值 选择CNY,选择充值金额,我是充了10快钱,充多少都可以自定义,然后选择支付方式进行支付即可。 冲完后回到主页就和我前面的内容一样了,有了余额。 点击API Keys,创建API keys deepseek API Keys 名称随意 deepseek 创建API Keys 创建成功后会提示你的key,就是这个sk-开头的内容,不要泄露给别人。 deepseek 创建API Keys

# 找到文章元素选择器

首先要有一个浏览器,如谷歌浏览器。 访问https://www.datehoer.com,然后按F12打开开发者工具,然后选择Elements,然后找到对应的元素选择器。 找到文章元素选择器 然后就可以找到对应的元素在开发者工具的位置。 找到文章元素选择器 之后可以右键该元素,选择Copy,然后选择Copy Selector,就可以得到对应的元素选择器了。 image