使用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()
输出: