AI网络爬虫:无限下拉滚动页面的另类爬取方法

2024-05-31 23:28

本文主要是介绍AI网络爬虫:无限下拉滚动页面的另类爬取方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在很多网页都是无限下拉滚动的。可以拉动到底部,然后保存网页为mhtml格式文件。

接着,在ChatGPT中输入提示词:

你是一个Python编程高手,要完成一个关于爬取网页内容的Python脚本的任务,下面是具体步骤:

在f盘新建一个Excel文件:poe热门bot.xlsx;

用Pyppeteer库的无界面模式模拟用户打开本地的网页文件:"F:\AI自媒体内容\AI行业数据分析\探索 - Poe.mhtml";

解析源代码;

定位 class="InfiniteScroll_container__PHsd4 ExploreBotsPagedList_infiniteScroll__000mi"的div标签;

定位div标签里面的所有a标签,提取其href属性值,这是bot的URL地址,写入Excel文件的第4列;

定位a标签里面class="BotListItem_botName__IYKgR"的div标签,这是bot名称,写入Excel文件的第1列;

定位a标签里面class="BotListItem_botDescription__9V_Sc"的div标签,这是bot简介,写入Excel文件的第2列;

定位a标签里面class="BotListItem_activeUserCount__m8cHa"的div标签,这是bot的用户数量,写入Excel文件的第3列;

注意:每一步都要输出相关信息到屏幕

一步一步的思考,但是所有的代码要整合在一起,不要分成一段一段的;

网页的文件编码是utf-8;

如果a标签里面没有一些div元素,就跳过;

chrome的路径为:D:\Program Files\chrome-win126\chrome.exe

chromedriver路径为:D:\Program Files\chromedriver126\chromedriver.exe

Chatgpt生成Python源代码:

import asyncio

import os

from bs4 import BeautifulSoup

from openpyxl import Workbook

from pyppeteer import launch

async def main():

# 步骤1:在F盘新建一个Excel文件

file_path = r'F:\poe热门bot.xlsx'

wb = Workbook()

ws = wb.active

ws.title = "Bots Info"

ws.append(["Bot Name", "Bot Description", "Active Users", "Bot URL"])

wb.save(file_path)

print(f"Excel文件已创建: {file_path}")

# 步骤2:用Pyppeteer库的无界面模式模拟用户打开本地的网页文件

local_file_path = r'F:\AI自媒体内容\AI行业数据分析\探索 - Poe.mhtml'

browser = await launch(executablePath=r'D:\Program Files\chrome-win126\chrome.exe', headless=True, args=['--no-sandbox'])

page = await browser.newPage()

await page.goto(f'file://{local_file_path}')

# 步骤3:解析源代码

page_content = await page.content()

soup = BeautifulSoup(page_content, 'html.parser')

# 步骤4:定位 class="InfiniteScroll_container__PHsd4 ExploreBotsPagedList_infiniteScroll__000mi"的div标签

container_div = soup.find('div', class_='InfiniteScroll_container__PHsd4 ExploreBotsPagedList_infiniteScroll__000mi')

if container_div:

print("找到目标div标签")

else:

print("未找到目标div标签")

await browser.close()

return

# 步骤5:定位div标签里面的所有a标签,提取其href属性值,写入Excel文件的第4列

a_tags = container_div.find_all('a')

print(f"找到{len(a_tags)}个a标签")

# 步骤6:处理每个a标签,提取信息并写入Excel文件

for a_tag in a_tags:

bot_url = a_tag.get('href', 'N/A')

bot_name_div = a_tag.find('div', class_='BotListItem_botName__IYKgR')

bot_desc_div = a_tag.find('div', class_='BotListItem_botDescription__9V_Sc')

bot_users_div = a_tag.find('div', class_='BotListItem_activeUserCount__m8cHa')

if bot_name_div and bot_desc_div and bot_users_div:

bot_name = bot_name_div.get_text(strip=True)

bot_desc = bot_desc_div.get_text(strip=True)

bot_users = bot_users_div.get_text(strip=True)

ws.append([bot_name, bot_desc, bot_users, bot_url])

print(f"写入Bot信息:名称={bot_name}, 简介={bot_desc}, 用户数量={bot_users}, URL={bot_url}")

else:

print("跳过a标签,因为缺少必要的div元素")

# 保存Excel文件

wb.save(file_path)

print(f"所有信息已写入Excel文件:{file_path}")

await browser.close()

asyncio.get_event_loop().run_until_complete(main())

这篇关于AI网络爬虫:无限下拉滚动页面的另类爬取方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019339

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在