使用BeautifulSoup无法访问目标网页,返回错误页面内容求助
解决访问https://www.iparkit.com/Minneapolis返回错误页面的问题
我帮你排查了下,你遇到的核心问题大概率是网站的反爬机制拦截了你的请求——很多网站会检查请求里的User-Agent头,判断访问是否来自真实浏览器,而你用httplib2默认发送的请求没有这个关键头,所以被网站识别成了机器人,返回了错误页面。
另外看你的代码片段,SoupStrainer的部分好像没写完,我一起帮你完善了。下面是修复后的完整代码:
import httplib2 from bs4 import SoupStrainer, BeautifulSoup # 模拟真实Chrome浏览器的请求头,避免被反爬拦截 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } http = httplib2.Http() # 发送请求时带上自定义请求头 status, response = http.request('https://www.iparkit.com/Minneapolis', headers=headers) # 配置SoupStrainer只提取页面中的a标签,提升解析效率 links_only = SoupStrainer('a') soup = BeautifulSoup(response, 'html.parser', parseOnlyThese=links_only) # 遍历所有带href属性的超链接并输出 for link in soup.find_all('a', href=True): print(link['href'])
额外说明:
- 如果你运行后还是有问题,可以试试添加更多请求头(比如
Accept-Language: en-US,en;q=0.9),进一步模拟真实浏览器的请求; - 可以打印
status变量看看响应状态码,如果是3xx开头,说明网站有重定向,httplib2默认会自动跟随,但如果是JS触发的重定向,可能需要用更复杂的工具来处理; - 确保你的
httplib2和BeautifulSoup是最新版本,避免版本兼容导致的问题。
内容的提问来源于stack exchange,提问作者mm_nieder
相关产品推荐
相关产品推荐

