python爬虫递归网页
时间: 2024-09-29 22:10:33 浏览: 55
在Python中,爬取递归网页通常涉及到深度优先搜索(DFS)或广度优先搜索(BFS)算法的应用,尤其是当你需要抓取的是有链接嵌套结构的网站。你可以使用requests库获取网页内容,BeautifulSoup或lxml库解析HTML,然后通过`find_all()`或`.select()`等方法找到所有的链接。
以下是一个简单的递归函数示例,使用BeautifulSoup和Python:
```python
import requests
from bs4 import BeautifulSoup
def crawl(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 获取所有a标签,也就是链接
links = soup.find_all('a', href=True)
for link in links:
# 构造新的链接并检查是否已爬过(这里假设有一个visited_links列表)
new_url = link['href']
if new_url not in visited_links:
visited_links.append(new_url) # 添加新链接到已访问列表
print(f"Crawling: {new_url}")
# 递归地对新链接再次调用crawl函数
crawl(new_url)
# 起始点,例如百度首页
start_url = "https://www.baidu.com"
crawl(start_url)
```
阅读全文