网站首页 > 技术文章 正文
此脚本从给定的网页中检索所有链接,并将其保存为txt文件。(文末有完整源码)
这是一个简单的网络爬虫示例,使用了 requests 库来发送 HTTP 请求并获取网页内容,使用 BeautifulSoup 库来解析网页内容。
代码解释如下:
1.导入所需的库
导入 requests 库并将其重命名为 rq,用于发送 HTTP 请求和获取网页内容。
import requests as rq
从 bs4 库导入 BeautifulSoup 类,用于解析 HTML 内容。
from bs4 import BeautifulSoup
2.获取用户输入的链接
提示用户输入一个链接,并将其保存在 url 变量中。
url = input("Enter Link: ")
3.发送 HTTP 请求获取网页内容
- 使用条件语句判断用户输入的链接是否以 "https" 或 "http" 开头。
- 如果是,则使用 rq.get(url) 发送 GET 请求获取网页内容,并将响应保存在 data 变量中。
- 如果不是,则在链接前添加 "https://" 并使用 rq.get() 发送请求,将响应保存在 data 变量中。
4.使用 BeautifulSoup 解析网页内容
将 data.text(网页内容)传递给 BeautifulSoup 类的构造函数,指定解析器为 "html.parser",创建一个 BeautifulSoup 对象 soup。
soup = BeautifulSoup(data.text, "html.parser")
5.提取链接
- 创建一个空列表 links 用于存储提取的链接。
- 使用 soup.find_all("a") 查找网页中所有的 <a> 标签,并返回一个包含这些标签的列表。
- 遍历列表中的每个标签,使用 link.get("href") 获取每个标签中的 "href" 属性值,并将其添加到 links 列表中。
6.将提取的链接写入文件
- 使用 with open("myLinks.txt", 'a') as saved: 打开一个文件 "myLinks.txt",以追加模式。
- 使用 print(links[:100], file=saved) 将 links 列表中的前 100 个链接写入文件中,每个链接占一行。
- 如果需要每次覆盖文件内容而不是追加,可以将文件打开模式由 'a' 改为 'w'。
这段代码的功能是获取用户输入的链接对应网页中的前 100 个链接,并将这些链接写入到名为 "myLinks.txt" 的文件中。
运行截图
附完整代码
import requests as rq
from bs4 import BeautifulSoup
url = input("Enter Link: ")
if ("https" or "http") in url:
data = rq.get(url)
else:
data = rq.get("https://" + url)
soup = BeautifulSoup(data.text, "html.parser")
links = []
for link in soup.find_all("a"):
links.append(link.get("href"))
# 将输出写入文件(myLinks.txt)
# 可以将“a”更改为“w”以每次覆盖文件
with open("myLinks.txt", 'a') as saved:
print(links[:10], file=saved)
- 上一篇: python爬取电子课本,送给居家上课的孩子们
- 下一篇: 用Python打造一个简洁美观的桌面计算器
猜你喜欢
- 2025-05-08 python爬取电子课本,送给居家上课的孩子们
- 2025-05-08 Python爬虫实战,selenium模拟登录,Python实现抓取某东商品数据
- 2025-05-08 「2022 年」崔庆才 Python3 爬虫教程 - aiohttp 的基本使用
- 2025-05-08 Python爬虫实战:爬取动态网页数据
- 2025-05-08 python爬虫怎么副业接单(python爬虫在哪接单)
- 2025-05-08 「2022 年」崔庆才 Python3 爬虫教程 - 网页解析利器 XPath 初体验
- 2025-05-08 惊呆了!Python还能这样用?爬取网页数据并存储至本地数据库
- 2025-05-08 Python爬虫:如何实现异步加载爬取图片?
- 2025-05-08 使用ChatGPT编码抓取网页数据成功
- 2025-05-08 python爬虫09 | 上来,自己动!这就是 selenium 的牛逼之处
- 263℃Python短文,Python中的嵌套条件语句(六)
- 262℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 255℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 255℃Python实现字符串小写转大写并写入文件
- 113℃原来2025是完美的平方年,一起探索六种平方的算吧
- 94℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)