使用open-interpreter 0基础创建爬虫采集数据
之前写了一篇关于node.js爬虫的文章。想通过几个网站案例教大家用node.js写爬虫,但是一直没抽出时间来写,之后用了下open-interpreter感觉挺好用,而且用来写爬虫的话也不错,挺适合0基础的,于是准备拿之前准备的网站教大家用open-interpreter写爬虫采集数据。 俗话说得好,工欲善其事必先利其器。 所以我们要先做好前期准备:
- 一台电脑
- 一个脑子
这里不知道大家都是什么水平,所以我们从头开始,首先是安装一下python环境,首先访问python官网 (opens new window)
鼠标悬浮在Downloads上,会有电脑系统选项,选择你的电脑系统,我这里是Windows,所以我就选择了红框中的。
点击Windows后,会跳转到新的网页 (opens new window)
之后根据我们的系统位数来选择下载哪个版本,我这里是64位,所以就选了Windows installer (64-bit) (opens new window)
点击后会直接下载,下载后双击打开
首先勾选下面两个单选框,之后直接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)。如下图所示
之后我们执行一下这个命令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)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
这里我用的是deepseek
,优点就是便宜,缺点就是便宜,如果不会注册可以看。
填写好自己的信息后,保存。
之后随便找个文件夹,在该文件夹打开cmd。
输入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来设置源
这里直接无脑按y即可,输入y然后回车。 然后等一会就会写出代码,这里我们继续按y执行。 等待一会后,看下运行结果,大体意思是这段代码执行时没有发生任何错误,通常意味着脚本执行成功了。如果要确认是否按照预期工作,请查看articles.txt文件。 可以看到采集的结果还可以,可以正常使用。 如果结果不符合预期的话,可以继续对话,来进行修改。
这里我做了下修改,然后就出现问题了。采集到的内容乱码了,而且只有一条数据。 这里看到,我们的selector只能查到一篇数据,而我们应该是一个通用的,可以查到所有文章链接的selector。所以我们需要继续修改提示词。 我直接说了我们要获取到列表而非单独的url,然后interpreter会自己修改代码,然后执行。 这里它报错了,我们不去管他,他会自己修改代码解决错误。 看起来有模有样了。 还是g了,但是我们看导出的文件发现其实是可以了,只是乱码了而已。 我们这里提供多个selector给他,做一个例子让他总结出一个通用的selector。 但是还是出问题了,输出的文章内容还是乱码了。 我们来解决一下乱码问题。 但是依然不行,我们继续跟他说不可以,然后他就会提供解决方案。 但是他给出的方案依然解决不了问题,所以我给了他一点小小的帮助。 我说应该是response.text的编码有问题,应该用response.content重新编码,然后输出的内容就成功了。 所以其实纯0基础小白用起来还是挺难的,不过这些错误我觉得可以人工去百度一下,然后找到解决方案再发给ai。
访问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
# 注册deepseek
访问:https://platform.deepseek.com/sign_up
输入对应的信息进行注册,然后注册成功进行登录,充钱。
选择CNY,选择充值金额,我是充了10快钱,充多少都可以自定义,然后选择支付方式进行支付即可。
冲完后回到主页就和我前面的内容一样了,有了余额。
点击API Keys,创建API keys
名称随意
创建成功后会提示你的key,就是这个sk-
开头的内容,不要泄露给别人。
# 找到文章元素选择器
首先要有一个浏览器,如谷歌浏览器。 访问https://www.datehoer.com,然后按F12打开开发者工具,然后选择Elements,然后找到对应的元素选择器。 然后就可以找到对应的元素在开发者工具的位置。 之后可以右键该元素,选择Copy,然后选择Copy Selector,就可以得到对应的元素选择器了。