使用Python构建强大的网络爬虫
import requests
from bs4 import BeautifulSoup
import re
def crawl_site(url):
# 发送HTTP请求
res = requests.get(url)
# 解析网页
soup = BeautifulSoup(res.text, 'html.parser')
# 提取所有的链接
links = soup.find_all('a')
for link in links:
# 提取链接地址
link_url = link.get('href')
# 筛选出有效的链接地址
if re.match(r'^http', link_url) and link_url not in crawled_urls:
print(link_url)
crawled_urls.add(link_url)
crawl_site(link_url)
# 启始网址
home_page_url = 'http://example.com'
# 已爬取的链接集合
crawled_urls = set()
# 爬取起始网页
crawled_urls.add(home_page_url)
crawl_site(home_page_url)
这段代码使用了requests库来发送HTTP请求,使用BeautifulSoup来解析HTML,并使用正则表达式(re)来筛选链接。这个简单的示例展示了如何递归地爬取一个网站的所有页面,并提取其中的链接,但在实际应用中可能需要处理更复杂的情况,例如处理登录、处理Cookies、应对反爬虫策略等。
评论已关闭