最近在学习python爬虫,试着爬取一些网站信息后,想要爬取学校教务处网站,学校查成绩的入口只有校园网可以进,但是之前有人做出来了爬虫可以爬取教务处成绩,我也想做出来。网站在IE和Chrome浏览器下都显示此内容无法在框架在一个框架中,新窗口打开也不行,查网上一些资料说用beautiful soup4解析网站即可,但是依然不行,出现了上面那句英文。scr的连接是http://1.1.1.2/disable/disable.htm有没有大神指点下。。。。。
代码如下:
import requests;
import logging;
from bs4 import BeautifulSoup;
import os;
url = "http://jwcweb3.wit.edu.cn";
header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"};
logging.captureWarnings(True);
requests = requests.get(url=url,verify=False,data=header);
print("网络请求返回码为:%d"%requests.status_code);
requests.encoding=requests.apparent_encoding
s=requests.text
soup=BeautifulSoup(s,"html.parser")
s=soup.prettify()
print (s)


爬虫使用beautiful soup4时遇到Your browse does not support frame!,新手求解决
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-08-08 06:04关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
您的问题主要涉及到如何正确地使用Beautiful Soup来处理网页上的HTML结构。您提到的问题可能是由于浏览器对框架元素的支持不足导致的。下面是一些建议来解决这个问题:
1. 使用
lxml替换bs4lxml是一个比BeautifulSoup更现代、功能更强的库,它提供了更多的高级特性,包括更好的跨域支持。from lxml import html url = "http://1.1.1.2/disable/disable.htm" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', } response = requests.get(url, headers=headers) if response.status_code == 200: tree = html.fromstring(response.content) else: print(f"Failed to get content with status code {response.status_code}")2. 检查浏览器兼容性
确保您的浏览器支持HTML5标准,并且没有阻止框架元素的渲染。例如,在Firefox中禁用
Frame Resizing(设置Content Security Policy),或者在Google Chrome中启用Web Inspector以查看是否允许框架元素。3. 使用不同的代理服务器或反向代理
有时候,使用不同的代理服务器或反向代理服务可以帮助绕过某些防火墙限制。
4. 检查网络环境
如果可能的话,请尝试在另一个网络环境下运行程序,因为网络环境也会影响浏览器的行为。
5. 使用其他方法获取页面内容
如果上述方法都无法解决问题,您可以考虑使用其他技术从页面上提取所需的内容,比如通过JavaScript API或者手动下载页面源代码。
注意事项
- 在进行任何更改之前,请确保备份所有重要的文件。
- 尽管我尽力提供解决方案,但具体操作可能因浏览器版本、操作系统等不同而有所差异。
- 在实际应用中,最好先测试并确认方案的有效性,避免直接修改生产环境中的代码。
希望这些建议能帮到您!如果您有更多关于编程、网络或浏览器相关的问题,请随时提问。
解决 无用评论 打赏 举报