📅  最后修改于: 2023-12-03 15:08:34.266000             🧑  作者: Mango
在 bs4 中,可以使用 find_all()
方法来获取所有符合要求的标签。如果想要获取所有 a
标签中的 href
属性,可以使用以下代码:
from bs4 import BeautifulSoup
import requests
url = 'https://www.example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
links = []
for link in soup.find_all('a'):
links.append(link.get('href'))
print(links)
代码解析:
BeautifulSoup
和 requests
库。href
属性的网址 url
。requests.get()
方法请求页面,并将响应内容传递给 BeautifulSoup
解析。soup.find_all('a')
方法获取所有 a
标签,并使用 for
循环依次遍历每一个标签。link.get('href')
方法获取 href
属性的值,并将其添加到 links
列表中。links
列表。这个代码片段的输出结果将是一个包含所有网址的列表。如果你想要将网址保存到一个文件中,可以使用以下代码:
with open('links.txt', 'w') as f:
for link in links:
f.write(link + '\n')
这段代码将将网址逐行写入名为 links.txt
的文件中。
除了上述方法外,你还可以使用 select()
方法来获取所有 a
标签的 href
属性。代码如下:
links = [link['href'] for link in soup.select('a[href]')]
使用 select()
方法可能比使用 find_all()
更快,特别是在处理大型 HTML 文档时。这是因为 select()
方法使用CSS选择器语法,可以更快地解析文档。
总之,在 bs4 中获取所有 a
标签的 href
属性是非常简单的,可以使用 find_all()
或 select()
方法实现。