使用Python进行网页爬取通常包括以下步骤:
导入库
`requests`:用于发送HTTP请求。
`BeautifulSoup` 或 `lxml`:用于解析HTML或XML响应。
发送HTTP请求
import requests
response = requests.get('http://example.com')
解析响应内容
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
提取所需数据
假设我们要提取所有的段落文本
paragraphs = soup.find_all('p')
for p in paragraphs:
print(p.get_text())
保存数据
with open('output.txt', 'w', encoding='utf-8') as file:
file.write(soup.get_text())
处理异常
try:
response = requests.get('http://example.com')
response.raise_for_status() 如果请求失败,将抛出HTTPError异常
except requests.exceptions.HTTPError as errh:
print ("Http Error:",errh)
except requests.exceptions.ConnectionError as errc:
print ("Error Connecting:",errc)
except requests.exceptions.Timeout as errt:
print ("Timeout Error:",errt)
except requests.exceptions.RequestException as err:
print ("OOps: Something Else",err)
使用高级技术(可选):
`Selenium`:用于模拟浏览器操作,获取动态加载的数据。
`异步框架`(如`aiohttp`):用于异步发送HTTP请求。
`API客户端库`:直接通过API获取数据,通常更高效。
请根据实际需要选择合适的方法和库。