鱼C论坛

 找回密码
 立即注册
查看: 2805|回复: 30

[已解决]爬虫问题求助

[复制链接]
发表于 2023-7-17 12:10:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 学习编程中的Ben 于 2023-7-17 12:12 编辑

最近在学习爬虫,没什么好爬,于是乎我就拿了鱼C论坛来开刀
打算爬取鱼C论坛的帖子(当然只包括帖子内的文字内容),但发现……太难了呜呜呜
用正则完全不知道该咋匹配。
看看有没有人(机器人)能在10秒中内回复,有的我给最佳
最佳答案
2023-7-17 12:19:58
学习编程中的Ben 发表于 2023-7-17 12:16
事实证明,连输出都没有
from requests import get
from bs4 import BeautifulSoup
soup2 = BeautifulSoup(get(url).text, "lxml")
content = soup2.find("td", class_="t_f").text
plate, title = map(lambda x: x.text, soup2.select("#pt .z a")[-2:])
ans = f"{title} {plate}\n{content}"
print(ans)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-17 12:10:40 | 显示全部楼层
我来啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 12:10:56 | 显示全部楼层
标题:使用BeautifulSoup进行网页爬取

内容:

这个问题实际上更适合使用BeautifulSoup库,而不是正则表达式来解决。BeautifulSoup库可以帮助你解析HTML或XML文件,寻找你需要的数据。

以下是一个基本的例子,用来获取鱼C论坛的帖子的文字内容:
import requestsfrom bs4 import BeautifulSoup# 这是你要爬取的鱼C论坛的网页的URLurl = "http://bbs.fishc.com/forum.php"response = requests.get(url)soup = BeautifulSoup(response.text, 'lxml')# 爬取帖子的标题for title in soup.find_all('a', class_='s xst'):    print(title.text)# 爬取帖子的内容for content in soup.find_all('td', class_='t_f'):    print(content.text)
在上述代码中,我们首先导入requests和BeautifulSoup库,然后定义要爬取的网页URL。然后,我们用requests.get()获取网页内容,用BeautifulSoup()解析网页内容。然后,我们通过find_all()函数找出我们需要的数据。在本例中,我们需要帖子的标题和内容,所以我们搜索了帖子标题和内容的HTML标签和类名。

请注意,这个代码片段是一个简化的例子,可能无法直接应用于鱼C论坛的所有页面,因为不同的页面可能有不同的HTML结构。实际上,你可能需要在具体的项目中根据你需要爬取的页面的HTML结构进行一些调整。在写爬虫的时候,一个重要的步骤是理解你要爬取的网页的HTML结构。

希望这个例子可以帮助你理解如何使用BeautifulSoup库进行网页爬取。如果你还有其他问题,欢迎继续提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-7-17 12:12:24 | 显示全部楼层
isdkz 发表于 2023-7-17 12:10
标题:使用BeautifulSoup进行网页爬取

内容:

一看就不能用啊,机器人不行啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-17 12:16:07 | 显示全部楼层
isdkz 发表于 2023-7-17 12:10
标题:使用BeautifulSoup进行网页爬取

内容:

事实证明,连输出都没有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 12:17:00 | 显示全部楼层
学习编程中的Ben 发表于 2023-7-17 12:12
一看就不能用啊,机器人不行啊

还真不是机器人不行,但凡了解大模型的原理就不会这么说了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 12:17:44 | 显示全部楼层
学习编程中的Ben 发表于 2023-7-17 12:16
事实证明,连输出都没有

因为在他的训练数据里面只有之前那个老版本的论坛,之前是 bbs.fishc.com 的,现在没有了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-17 12:18:11 | 显示全部楼层
isdkz 发表于 2023-7-17 12:17
还真不是机器人不行,但凡了解大模型的原理就不会这么说了

但是我不了解我只想要一个正确的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 12:19:58 | 显示全部楼层    本楼为最佳答案   
学习编程中的Ben 发表于 2023-7-17 12:16
事实证明,连输出都没有
from requests import get
from bs4 import BeautifulSoup
soup2 = BeautifulSoup(get(url).text, "lxml")
content = soup2.find("td", class_="t_f").text
plate, title = map(lambda x: x.text, soup2.select("#pt .z a")[-2:])
ans = f"{title} {plate}\n{content}"
print(ans)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 12:24:30 | 显示全部楼层
本帖最后由 isdkz 于 2023-7-17 12:25 编辑
学习编程中的Ben 发表于 2023-7-17 12:18
但是我不了解我只想要一个正确的结果


爬虫问题直接问chatgpt基本是不可能直接得到正确结果的

我在忙别的事情懒得写,等大佬来给你解决了

我帮你@一个: @陶远航
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-7-17 12:25:17 | 显示全部楼层
isdkz 发表于 2023-7-17 12:24
爬虫问题直接问chatgpt基本是不可能直接得到结果的

我在忙别的事情懒得写,等大佬来给你解决了

你可以复制你的脚本获取求助帖内容的代码我就这么干了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 12:26:56 | 显示全部楼层
歌者文明清理员 发表于 2023-7-17 12:25
你可以复制你的脚本获取求助帖内容的代码我就这么干了

算了,他的需求不够清晰,论坛那么多帖子,都不知道他要爬哪些帖子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 13:02:14 | 显示全部楼层
isdkz 发表于 2023-7-17 12:26
算了,他的需求不够清晰,论坛那么多帖子,都不知道他要爬哪些帖子

我知道,他要爬求助帖,想想都知道干什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 13:55:52 From FishC Mobile | 显示全部楼层
isdkz 发表于 2023-7-17 12:10
标题:使用BeautifulSoup进行网页爬取

内容:

赞赞赞,流程上明白了,细节处理上,作为菜鸟的我,还需要再琢磨琢磨
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 13:59:26 | 显示全部楼层
liuhongrun2022 发表于 2023-7-17 13:02
我知道,他要爬求助帖,想想都知道干什么

草草草草草草草草草我就不应该告诉他
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:11:11 | 显示全部楼层
歌者文明清理员 发表于 2023-7-17 13:59
草草草草草草草草草我就不应该告诉他

不过脚本容易出bug,比如换个地址栏
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:22:58 | 显示全部楼层
isdkz 发表于 2023-7-17 12:24
爬虫问题直接问chatgpt基本是不可能直接得到正确结果的

我在忙别的事情懒得写,等大佬来给你解决了
...

昨天他跟我说要我给他代码,我给了他他就跑了

今天才知道他要做脚本,预谋已久。我是不会给滴,不想多个对手。

@sfqxx @liuhongrun2022 @歌者文明清理员 不要说,千万别说
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:23:48 | 显示全部楼层
陶远航 发表于 2023-7-17 14:22
昨天他跟我说要我给他代码,我给了他他就跑了

今天才知道他要做脚本,预谋已久。我是不会给滴,不想多 ...

?什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:23:48 | 显示全部楼层
陶远航 发表于 2023-7-17 14:22
昨天他跟我说要我给他代码,我给了他他就跑了

今天才知道他要做脚本,预谋已久。我是不会给滴,不想多 ...

昨天估计就是他用了你的脚本导致你的ip进小黑屋的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-17 14:24:03 | 显示全部楼层

《同时发布》
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 11:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表