0

页面 url 是www.nenu.edu.cn/intramural/content/news/110.php
使用 chrome 获取源代码与使用请求不同。我使用 requests.get 是

u'\r\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r\n<html xmlns="http://www.w3.org/1999/xhtml">\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />\r\n<title>\u4e1c\u5317\u5e08\u8303\u5927\u5b66</title>\r\n<link href="../../images/nenu_news.css" rel="stylesheet" type="text/css" />\r\n</head>\r\n<body>\r\n\r\n<script language="javascript" type="text/javascript"> window.location ="http://www.nenu.edu.cn/intramural/content/news/110.php";</script>'
4

1 回答 1

2

如果您查看requests.get提供给您的 HTML,您将看到以下代码段:

<script language="javascript" type="text/javascript">
window.location ="http://www.nenu.edu.cn/intramural/content/news/110.php";
</script>

这意味着当 Chrome 加载页面时,页面内的那个小的 Javascript 代码片段会告诉浏览器导航到http://www.nenu.edu.cn/intramural/content/news/110.php- 它可能是你在 Chrome 中查看源代码时看到的那个页面的 HTML 内容。但是,requests由于它不是浏览器,因此不会在响应中解析和执行 Javascript,因此它只会为您提供文字响应文本。

就那么简单。

编辑:实际上你的问题(尤其是标题)写得很糟糕(就一般清晰度以及你非常糟糕的英语语法而言),我不确定这是否是你唯一要问的问题,所以请尝试以后花更多的精力写你的问题。

PS。如果不使用完整的浏览器或浏览器模拟器,使用window.location = ...或类似技巧进行重定向的页面很难抓取。

于 2013-10-26T08:13:42.750 回答