Python 爬虫 DFS
时间: 2023-11-05 21:53:16 浏览: 144
Python爬虫
DFS(深度优先搜索)是一种递归算法,可以用于遍历一些非线性的数据结构,比如图和树。在 Python 爬虫中,我们可以使用 DFS 算法来遍历某个网站上的所有页面,以便获取需要的数据。
下面是一个简单的 Python 爬虫 DFS 示例:
```python
import requests
from bs4 import BeautifulSoup
visited = set()
def dfs(url):
if url in visited:
return
visited.add(url)
print(url)
html = requests.get(url).text
soup = BeautifulSoup(html, 'html.parser')
links = soup.find_all('a')
for link in links:
href = link.get('href')
if href.startswith('http'):
dfs(href)
dfs('https://www.example.com')
```
在上面的代码中,我们定义了一个 `visited` 集合,用于记录已经访问过的页面。然后,我们定义了一个 `dfs` 函数,该函数接受一个 URL 作为参数,并使用 `requests` 库获取该 URL 对应的 HTML 页面。接着,我们使用 `BeautifulSoup` 库将 HTML 页面解析成一个树形结构,并获取其中的所有链接。最后,我们使用递归调用 `dfs` 函数来遍历所有链接,并打印出每个链接的 URL。
需要注意的是,上面的代码只是一个简单的示例,实际上在爬取网站数据时,我们还需要考虑如何避免重复访问页面、如何处理异常情况等问题。
阅读全文