[ 本帖最后由 HUC-xamg 于 2024-4-14 11:09 编辑 ]
import requests
from bs4 import BeautifulSoup
def get_webpage_content(url):
"""
发送GET请求,获取指定URL的网页内容
"""
try:
response = requests.get(url)
response.raise_for_status() # 如果响应状态码不是200,抛出异常
return response.text
except requests.RequestException as e:
print(f"Error occurred while fetching webpage: {e}")
return None
def extract_links(html_content):
"""
解析HTML内容,提取所有链接(a标签的href属性)
"""
soup = BeautifulSoup(html_content, 'html.parser')
links = [a['href'] for a in soup.find_all('a', href=True)]
return links
def main():
target_url = "https://example.com" # 替换为您要爬取的实际网址
page_content = get_webpage_content(target_url)
if page_content:
links = extract_links(page_content)
for link in links:
print(link)
if __name__ == "__main__":
main()
在这个例子中:
1. get_webpage_content 函数使用 requests.get() 发送GET请求到指定URL,获取网页的HTML文本内容。如果请求成功(HTTP状态码为200),则返回该文本内容;否则,打印错误信息并返回 None。
2. extract_links 函数接收HTML文本内容作为输入,使用 BeautifulSoup 对其进行解析。通过 find_all('a', href=True) 查找所有的<a>标签,并提取它们的 href 属性(即链接)。返回一个包含所有链接的列表。
3. main 函数定义了主流程:设置目标URL,调用 get_webpage_content 获取网页内容,然后调用 extract_links 提取链接,并打印出来。 |