📜  使用Python从网页中提取所有 URL

📅  最后修改于: 2022-05-13 01:54:51.321000             🧑  作者: Mango

使用Python从网页中提取所有 URL

抓取是每个人从任何网站获取数据的一项非常重要的技能。在本文中,我们将编写Python脚本来提取网站中的所有 URL,或者您可以将其保存为 CSV 文件。

所需模块:

  • bs4 : Beautiful Soup(bs4) 是一个Python库,用于从 HTML 和 XML 文件中提取数据。这个模块没有内置于Python中。要安装此类型,请在终端中输入以下命令。
pip install bs4
  • requests Requests 允许您非常轻松地发送 HTTP/1.1 请求。这个模块也没有内置于Python中。要安装此类型,请在终端中输入以下命令。
pip install requests

方法:

  • 导入模块
  • 制作请求实例并传入 URL
  • 将请求传递给 Beautifulsoup()函数
  • 使用 'a' 标签查找所有标签('a href ')

示例 1:

Python3
import requests
from bs4 import BeautifulSoup
 
 
url = 'https://www.geeksforgeeks.org/'
reqs = requests.get(url)
soup = BeautifulSoup(reqs.text, 'html.parser')
 
urls = []
for link in soup.find_all('a'):
    print(link.get('href'))


Python3
import requests
from bs4 import BeautifulSoup
 
urls = 'https://www.geeksforgeeks.org/'
grab = requests.get(urls)
soup = BeautifulSoup(grab.text, 'html.parser')
 
# opening a file in write mode
f = open("test1.txt", "w")
# traverse paragraphs from soup
for link in soup.find_all("a"):
   data = link.get('href')
   f.write(data)
   f.write("\n")
 
f.close()


输出:

示例 2:

提取 URL 并保存为 CSV 文件。

蟒蛇3

import requests
from bs4 import BeautifulSoup
 
urls = 'https://www.geeksforgeeks.org/'
grab = requests.get(urls)
soup = BeautifulSoup(grab.text, 'html.parser')
 
# opening a file in write mode
f = open("test1.txt", "w")
# traverse paragraphs from soup
for link in soup.find_all("a"):
   data = link.get('href')
   f.write(data)
   f.write("\n")
 
f.close()

输出: