Python实现提取给定网页内的所有链接

作者:海拥 时间:2022-03-29 19:01:11 

此脚本从给定的网页中检索所有链接,并将其保存为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" 的文件中。

运行截图

Python实现提取给定网页内的所有链接

Python实现提取给定网页内的所有链接

附完整代码

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)

来源:https://juejin.cn/post/7233995529692839993

标签:Python,网页,链接
0
投稿

猜你喜欢

  • ASP分页显示Recordset数据

    2008-11-07 15:43:00
  • Instr函数与InstrRev函数的区别

    2008-07-07 16:53:00
  • python字符串连接方式汇总

    2021-08-19 23:46:14
  • python机器学习基础K近邻算法详解KNN

    2024-01-01 05:44:57
  • Opencv图像处理之详解掩膜mask

    2022-08-12 23:40:44
  • MySQL数据库中使用GRANT语句增添新用户

    2008-12-17 14:45:00
  • jQuery 让人恋恋不舍的秘密

    2010-01-20 10:09:00
  • 内容,而不是Chrome

    2008-10-16 13:43:00
  • CSS布局之浮动(三)自适应

    2008-08-19 12:49:00
  • 如何用METADATA替换ADOVBS.INC?

    2010-06-12 12:54:00
  • SQL参数化查询的另一个理由 命中执行计划

    2012-08-21 10:31:16
  • PHP简易延时队列的实现流程详解

    2023-05-29 23:02:48
  • 在查询分析器理启动或停止SQL Agent服务

    2009-01-08 16:20:00
  • Mysql日期和时间函数大全

    2011-03-08 09:52:00
  • asp检测文件编码方法

    2007-10-03 14:27:00
  • asp如何遍历目录及目录下的文件?

    2009-11-11 17:55:00
  • 数据库分页大全(mssql,mysql,oracle)

    2010-10-25 20:02:00
  • IE里模拟DOMContentLoaded事件

    2008-08-05 17:12:00
  • 使用SqlBulkCopy时应注意Sqlserver表中使用缺省值的列

    2012-07-11 15:34:35
  • 利用python汇总统计多张Excel

    2023-12-31 14:22:11
  • asp之家 网络编程 m.aspxhome.com