部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >​AI+代理IP手把手教你爬取某度

​AI+代理IP手把手教你爬取某度

原创
作者头像
袁袁袁袁满
修改于 2025-04-18 02:06:24
修改于 2025-04-18 02:06:24
8000
代码可运行
举报
运行总次数:0
代码可运行

一、引言

最近Deepseek火遍大江南北,很多朋友都会用它制作一些小型程序商用,其中不乏有网络爬虫。以前对于中小企业来说,“写个爬虫”似乎是一件遥不可及的事情。

不过现在,随着人工智能技术的不断进步,低代码甚至零代码的数据采集解决方案已经不再是梦想。接下来就让我们一起探索如何借助AI助手DeepSeek自动生成爬虫代码,再结合亮数据强大的网页解锁和搜索引擎爬虫功能,轻松实现对某度新闻搜索结果的高效抓取。

二、使用DeepSeek爬取某度搜索结果

在开始前,我们先一起观察一下搜索页。当我们输入关键字进行搜索时,URL部分会负责传递搜索参数。比如说我们想搜索一个关键词。注意观察URL部分,显然word负责指定搜索关键字。

当我们翻页之后会发现多了一个参数,每次翻页会让pn值增加10。这样我们就搞清楚了URL的主要构成。

事实上其他参数也有各自的功能,这里我们用一个表格罗列其中的一部分。

最好的办法就是复制一个真实的URL,在里面挖空留出我们要设置的参数部分。之后使用这个URL让Deepseek生成爬虫程序。在Deepseek中输入如下提示词:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
你是一个Python编程专家,要完成一个百度搜索页面爬取的Python脚本,具体任务如下:

1. 解析网页:https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&ie=utf-8&word={keyword}&x_bfe_rqs=03E80&x_bfe_tjscore=0.100000&tngroupname=organic_news&newVideo=12&goods_entry_switch=1&rsv_dl=news_b_pn&pn={pagenumber}
其中{keyword}的值由用户输入决定;{pagenumber}的值从0开始,以10递增,到40结束。

2. 解析网页:定位其中所有class="result-op c-container xpath-log new-pmd"的div标签,定位div标签中class="news-title-font_1xS-F"的a标签,提取其href属性值作为网页下载URL,提取其aria-label属性值,作为网页文件名;定位div标签中class="c-font-normal c-color-text"的span标签,作为网页的内容摘要;

3. 网页下载URL、网页文件名、网页的内容摘要都写入到Excel文件中,Excel文件保存到与本程序相同的文件夹中,文件名为{keyword}的值加excel文件后缀。

4. 注意:每一步都要输出信息到屏幕上;每爬取一个网址后,随机暂停3-5秒;每下载一个网页后,随机暂停3-6秒;为这个程序设置请求标头:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4,ru;q=0.2
Accept-Encoding: gzip, deflate, br, zstd
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

将提示词发送给Deepseek很快就可以得到结果,这样我们就初步完成了任务。

以下是Deepseek生成的代码:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
import random
import os
from fake_useragent import UserAgent

def get_user_agent():
    return {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0',
        'Accept': 'image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5',
        'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4,ru;q=0.2',
        'Accept-Encoding': 'gzip, deflate, br, zstd',
        'Connection': 'keep-alive',
        'Sec-Fetch-Dest': 'image',
        'Sec-Fetch-Mode': 'no-cors',
        'Sec-Fetch-Site': 'same-origin'
    }

def scrape_baidu_news(keyword):
    print(f"开始爬取关键词: {keyword}")
    
    # 准备存储数据的列表
    data = []
    
    # 从0开始,每次增加10,直到40
    for pn in range(0, 41, 10):
        print(f"正在处理第 {pn//10 + 1} 页...")
        
        # 构造URL
        url = f"https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&ie=utf-8&word={keyword}&x_bfe_rqs=03E80&x_bfe_tjscore=0.100000&tngroupname=organic_news&newVideo=12&goods_entry_switch=1&rsv_dl=news_b_pn&pn={pn}"
        print(f"构造的URL: {url}")
        
        try:
            # 发送请求
            headers = get_user_agent()
            response = requests.get(url, headers=headers)
            response.raise_for_status()
            print(f"成功获取第 {pn//10 + 1} 页内容")
            
            # 解析HTML
            soup = BeautifulSoup(response.text, 'html.parser')
            
            # 查找所有结果项
            results = soup.find_all('div', class_='result-op c-container xpath-log new-pmd')
            print(f"在第 {pn//10 + 1} 页找到 {len(results)} 条结果")
            
            for result in results:
                # 提取标题和URL
                title_tag = result.find('a', class_='news-title-font_1xS-F')
                if title_tag:
                    url = title_tag.get('href', '')
                    title = title_tag.get('aria-label', '无标题')
                    
                    # 提取摘要
                    abstract_tag = result.find('span', class_='c-font-normal c-color-text')
                    abstract = abstract_tag.get_text(strip=True) if abstract_tag else '无摘要'
                    
                    # 添加到数据列表
                    data.append({
                        'URL': url,
                        '标题': title,
                        '摘要': abstract
                    })
                    
                    print(f"提取到结果: {title}")
                    
                    # 随机暂停3-6秒
                    sleep_time = random.uniform(3, 6)
                    print(f"等待 {sleep_time:.2f} 秒...")
                    time.sleep(sleep_time)
            
            # 随机暂停3-5秒
            sleep_time = random.uniform(3, 5)
            print(f"页面处理完成,等待 {sleep_time:.2f} 秒...")
            time.sleep(sleep_time)
            
        except Exception as e:
            print(f"处理第 {pn//10 + 1} 页时出错: {str(e)}")
            continue
    
    # 保存到Excel
    if data:
        df = pd.DataFrame(data)
        excel_filename = f"{keyword}.xlsx"
        df.to_excel(excel_filename, index=False)
        print(f"数据已保存到 {excel_filename}")
        
        # 获取文件完整路径
        file_path = os.path.abspath(excel_filename)
        print(f"文件保存路径: {file_path}")
    else:
        print("没有提取到任何数据,不创建Excel文件")

if __name__ == "__main__":
    keyword = input("请输入要搜索的关键词: ")
    scrape_baidu_news(keyword)

三、使用网页解锁器

然而事情并没有这么简单,我们多运行几次就会发现网页被百度拦截了。这是因为我们访问太频繁且行为模式非常单一,这时候我们就需要使用一些工具绕过拦截。亮数据自研的黑科技小工具,让我们轻松应对网站拦截

这次我们要使用的是网页解锁API。登录以后,在控制面板的代理&抓取基础设施中,选择网页解锁器进入选购页。

之后填写通道名称。在下方可以选择一些辅助工具,这里我们暂时保持默认。点击添加开始使用。

在详细信息中就可以拿到我们连接代理服务器的主机、端口号、用户名、密码,在右侧有相应的代码样例。注意在这里一定要将本机IP添加到白名单中以确保能正常连接服务器。

基于上面的配置,我们需要将获取页面的请求先提交给亮数据服务器,等待接收它返回的页面后再进行操作。所以我们要在爬虫程序中修改两个位置。首先要在最上方添加代理信息。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
proxy = 'http://brd-customer-hl_a0a48734-zone-baidu:tt5c75qi712k@brd.superproxy.io:33335'
proxies = {'http': proxy,
         'https': proxy}

之后在scrape_baidu_news()函数中将发送请求的代码response = requests.get(url, headers=headers)替换为response = requests.get(url, headers=headers, proxies=proxies)即可接入亮数据网页解锁器。

四、零基础编程爬虫

什么,你说你一点编程都不会?那也没问题,只要使用亮数据搜索引擎爬虫即可体验零代码编程。搜索引擎爬虫(SERP)是亮数据针对各大搜索引擎推出的爬虫工具,它能够直接将搜索结果以json格式返回。

接下来让我们一起来配置一下。同样是登录后进入控制面板,在代理&抓取基础设施中选择搜索引擎爬虫SERP进入选购。

在选购页填写通道名称,下方暂时保持默认。点击添加即可开始使用。

我们可以像网页解锁器那样使用SERP,也可以在操作平台中进行零代码编程。进入操作平台,在下方即可开始定制搜索内容。我们可以切换搜索引擎,设置搜索区域、语言、内容类型、分页、设备等等参数来满足需求。输入搜索内容,点击搜索即可预览结果。在左侧是实际的搜索结果页,右侧则是相应的json文件内容。

在调整完毕后点击底部的生成API代码,即可生成相应的程序以爬取搜索结果,是不是很方便呢?

五、总结

通过上面的步骤,我们不仅了解如何使用DeepSeek轻松生成爬虫代码,实现了搜索结果的提取与保存。之后,我们引入亮数据的网页解锁器,有效解决了频繁访问引发的封禁问题,保障了爬虫运行的稳定性和连续性。

对于完全不具备编程基础的中小企业,亮数据提供的搜索引擎爬虫工具让“零代码爬虫”成为现实,只需简单配置即可获取结构化搜索结果。这不仅降低了爬虫技术的门槛,也为更多人打开了数据智能的大门。如果你也曾因编程门槛或反爬机制望而却步,不妨试试这套“AI+低代码”的组合方式,也许下一次的数据采集项目,你只需动动手指,就能轻松搞定。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AI网络爬虫:deepseek爬取百度新闻资讯的搜索结果
https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&ie=utf-8&word=%E8%85%BE%E8%AE%AF%E4%BA%91%E6%99%BA%E8%83%BD%E8%AF%AD%E9%9F%B3+++%E9%87%91%E8%9E%8D
AIGC部落
2024/06/28
2570
AI网络爬虫:deepseek爬取百度新闻资讯的搜索结果
AI网络爬虫:批量爬取AI导航网站Futurepedia数据
Futurepedia致力于使AI技术对各行各业的专业人士更加可理解和实用,提供全面的AI网站和工具目录、易于遵循的指南、每周新闻通讯和信息丰富的YouTube频道,简化AI在专业实践中的整合。如何把Futurepedia上的全部AI网站数据爬取下来呢?
AIGC部落
2024/06/24
1190
AI网络爬虫:批量爬取AI导航网站Futurepedia数据
AI炒股-从东方财富网批量获取上市公司的全部新闻资讯
工作任务和目标:用户输入一个上市公司名称,然后程序自动从东方财富网批量获取上市公司的全部新闻资讯
AIGC部落
2024/06/24
1300
AI炒股-从东方财富网批量获取上市公司的全部新闻资讯
AI网络爬虫:批量爬取豆瓣图书搜索结果
你是一个Python编程专家,要完成一个爬虫Python脚本编写的任务,具体步骤如下:
AIGC部落
2024/06/24
2000
AI网络爬虫:批量爬取豆瓣图书搜索结果
大伙,为啥我爬虫爬百度搜索得出的结果是0啊?
前几天在Python白银交流群【~Crazy】问了一个Python网络爬虫处理的问题,这里拿出来给大家分享下。
Python进阶者
2023/09/02
4530
大伙,为啥我爬虫爬百度搜索得出的结果是0啊?
手把手教你爬取某酷音乐付费歌曲~
爬取酷我音乐相比网易云音乐、酷狗音乐以及QQ音乐来说容易很多,没有加密算法,而且在反爬虫中不存在一些难理解的逻辑,只需要理清思路即可!本文会用爬虫+GUI制作酷我音乐下载工具
Python与Excel之交
2021/08/05
3.5K0
手把手教你用VSCode+腾讯云AI代码助手使用DeepSeek-R1打造智能开发环境
在快节奏的软件开发领域,高效与智能已成为开发者追求的核心竞争力。今天,我们将揭秘如何通过
六月暴雪飞梨花
2025/02/26
1.1K0
手把手教你用VSCode+腾讯云AI代码助手使用DeepSeek-R1打造智能开发环境
反爬篇 | 手把手教你处理 JS 逆向之字体反爬(下)
上一篇文章我们使用 Scrapy + Selenium 爬取了某个电影网站即将上映的影片
AirPython
2023/08/22
7070
反爬篇 | 手把手教你处理 JS 逆向之字体反爬(下)
AI网络爬虫-自动获取百度实时热搜榜
标题:<div class="c-single-text-ellipsis"> 东部战区台岛战巡演练模拟动画 <!--48--></div>
AIGC部落
2024/06/24
2350
AI网络爬虫-自动获取百度实时热搜榜
AI网络爬虫:批量获取post请求动态加载的json数据
网站https://www.futurepedia.io/ai-innovations的数据是通过post请求动态加载的:
AIGC部落
2024/06/24
3110
AI网络爬虫:批量获取post请求动态加载的json数据
AI炒股-用kimi批量爬取网易财经的要闻板块
标题和链接在:<a href="https://www.163.com/dy/article/J2UIO5DD051188EA.html">华为急需找到“松弛感”</a>
AIGC部落
2024/06/24
1790
AI炒股-用kimi批量爬取网易财经的要闻板块
AI网络爬虫:批量下载某个网页中的全部链接
<a hotrep="doc.overview.modules.path.0.0.1" href="https://cloud.tencent.com/document/product/1093/35681" title="产品优势">
AIGC部落
2024/07/10
2440
AI网络爬虫:批量下载某个网页中的全部链接
爬虫系列 | 基于百度爬虫的非百度搜索引擎
这是本项目的开篇,在这个小项目中,将要基于爬虫和GUI编程写一个写个小工具,目的是不用打开浏览器,也能搜到一些关键信息,并将这些信息持久化保存下来,读者可以对这些数据进行分析,比如舆情分析,或作为 NLP 的语料输入。
月小水长
2020/12/02
7800
爬虫系列 | 基于百度爬虫的非百度搜索引擎
Python 爬虫系列教程一爬取批量百度图片[通俗易懂]
很久之前就学习了Python的爬虫了,也用来做过一些项目(主要是一些课程项目),但时间比较紧,一直没有空把它写下来,这个暑假,我可能会逐渐更新Python爬虫的相关知识。
全栈程序员站长
2022/08/18
1.5K0
Python 爬虫系列教程一爬取批量百度图片[通俗易懂]
Python爬虫三种解析方式,Pyhton360搜索排名查询
在网页数据解析当中,re正则解析是比较费劲的,而且非常容易出错,网页数据结构一旦出错,则容易报出异常,而且想要匹配好正则,你的正则表达式需要熟练,不然你得一步步去尝试了,某些网页数据解析还真的只能用正则表达式去匹配。
二爷
2020/07/22
8990
Python爬虫三种解析方式,Pyhton360搜索排名查询
保姆级教学,手把手教你用Python爬虫(附详细源码)
实践来源于理论,做爬虫前肯定要先了解相关的规则和原理,要知道互联网可不是法外之地,你一顿爬虫骚操作搞不好哪天就...
查理不是猹
2022/01/11
1.4K0
Python图片爬虫,某度图片多线程爬取方法附工具脚本助手
相信不少老哥的爬虫之路都是从图片爬取开始的,之所以走上这条不归路,不就是爬几个小(美)破(女)图么,本渣渣也写过不少图片爬虫,有一篇妹子图的爬虫可谓是手把手实战教学,印象深刻,对于图片素材类爬取,不同人群有着不同的用途,就看你的初衷是什么了。
二爷
2021/07/05
7420
Python 批量爬取猫咪图片实现千图成像
本文使用的 Python 版本是 3.10.0 版本,可直接在官网下载:https://www.python.org 。
Lucifer三思而后行
2021/11/03
1K0
Python 批量爬取猫咪图片实现千图成像
爬虫篇| 爬取百度图片(一)
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。(来源:百度百科)
润森
2019/09/02
5.5K1
爬虫篇| 爬取百度图片(一)
手把手教你用Selenium爬取拉勾网数据!
大家好,在之前我们讲解过很多基于requests+bs4的爬虫,现在换个口味,本文将基于Selenium讲解如何爬取并使用openpyxl存储拉勾网招聘数据。
刘早起
2020/11/05
1.5K0
推荐阅读
相关推荐
AI网络爬虫:deepseek爬取百度新闻资讯的搜索结果
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验