使用Python爬取给定网页的所有链接(附完整代码)

liftword2个月前 (03-26)技术文章24

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

6.将提取的链接写入文件

这段代码的功能是获取用户输入的链接对应网页中的前 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 中,有多种方法可以打开网页。以下是五种常用的方法,每种方法都附有简单的示例代码,帮助你快速上手。方法一:使用 webbrowser 模块特点:webbrowser 模块是 Pytho...

如何用python开发网页

当今的网站实际上都是富应用程序,就像成熟的桌面应用程序一样。Python提供了一组开发Web应用程序的卓越工具。在本节中,我们将使用Django来开发一个个人记录博客,其实通俗而言,就是一个在线日志的...

Python抓网页,代码比猫还调皮

程序员小张最近想用Python抓新闻,结果代码比家里主子还难伺候。先用requests库"拆快递"(发送请求),再用BeautifulSoup"找钥匙"(解析HTML),好不容易定位到标题和正文——结...

Python实现自动化网页操作

1 准备推荐使用Chrome浏览器1.1 安装selenium程序包激活虚拟环境,打开新的Terminal,输入以下代码:python -m pip install selenium如下图所示,表示安...

用纯Python就能写一个漂亮的网页,再见HTML

再见HTML ! 用纯Python就能写一个漂亮的网页我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一个简单的网页交互:天啊,听听头都大呢!其实我就给老板做一个...

使用 Python3 中的 urllib 库进行网络请求和解析网页内容(43)

Python3 中的 urllib 库是一个非常强大的工具,它提供了处理 URL 的各种方法和函数,包括发送网络请求、解析网页内容、处理头部信息等功能。其中主要的模块有 urllib.request、...