使用BeautifulSoup库替换`re`如何改进链接提取?
时间: 2024-09-27 14:12:21 浏览: 30
使用`BeautifulSoup`库可以从HTML文档中更方便、结构化的方式提取链接,相比于简单的正则表达式,它能更好地处理复杂的DOM结构。以下是使用`BeautifulSoup`改进链接提取的步骤:
首先,安装BeautifulSoup库,如果还没安装的话:
```bash
pip install beautifulsoup4
```
然后修改`fetch_page`函数中的链接提取部分,如下所示:
```python
from bs4 import BeautifulSoup
def extract_next_page_link_with_soup(html, base_url):
soup = BeautifulSoup(html, 'html.parser') # 创建BeautifulSoup对象
next_page_link = soup.find('a', text='下一頁') or soup.find('a', rel='next') # 查找包含“下一頁”或rel属性为"next"的链接
if next_page_link:
href = next_page_link['href'] if 'href' in next_page_link.attrs else None
return urljoin(base_url, href) if href else None
else:
return None
```
这里假设目标网站有明显的文本标签如`<a>下一頁</a>`或`<a rel="next">`用于指向下一页。`find()`方法会查找匹配的元素,返回第一个匹配的元素。`'href'`属性可以获取到链接。
阅读全文