Javascript 为什么在python中使用请求获取页面而不是源代码?如何获取源代码?

Javascript 为什么在python中使用请求获取页面而不是源代码?如何获取源代码?,javascript,python,Javascript,Python,页面url为www.nenu.edu.cn/intral/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://ww

页面url为
www.nenu.edu.cn/intral/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>'
u'\r\n\r\n\r\n\r\n\r\n\u4e1c\u5317\u5e08\u8303\u5927\u5b66\r\n\r\n\r\n\r\n window.location=”http://www.nenu.edu.cn/intramural/content/news/110.php";'

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

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

window.location=”http://www.nenu.edu.cn/intramural/content/news/110.php";
这意味着当Chrome加载页面时,页面中的小Javascript代码片段将告诉浏览器导航到
http://www.nenu.edu.cn/intramural/content/news/110.php
-当您在Chrome中查看源代码时,您看到的可能是该页面的HTML内容。但是,
请求
不会在响应中解析和执行Javascript,因为它不是浏览器,所以它只提供文本响应文本

就这么简单

编辑:事实上,你的问题(尤其是标题)写得非常糟糕(就总体清晰度和你糟糕的英语语法而言),我不确定这是否是你唯一要问的问题,因此请在以后的问题写作中多下些功夫


PS.使用
window.location=…
或类似技巧进行重定向的页面在不使用完整浏览器或浏览器模拟器的情况下很难爬网。

服务器端源代码不会发送到浏览器。因此,编译语言的源代码可能根本就不在服务器上,只有编译过的程序才是。Chrome(或任何浏览器或其他发出http请求的程序)只能查看响应中实际发送的内容。@nnnnnn:我想他不是在问这个问题,但我同意他的问题的措辞和标题太混乱,写得很糟糕(用蹩脚的英语),以至于很难看出他真正想要的是什么。。。但是那
window.location=…
看起来确实很相关。@ErikAllik-是的,我对OP的提问做出了最好的猜测。如果问题是关于从响应中提取
window.location=…
JS,那么这并不是我所说的“源代码”。但是从对你答案的回答来看,你显然是对的(所以+1)。谢谢,如果我想要这个页面的话。在python中,我应该怎么做?@user2606397:另外,如果我回答了你的问题,请接受它以表示你的感激这就是堆栈溢出的工作原理。对不起,我只是想知道如何在python中解析和执行js,通过搜索,也许我可以使用phantomjs获得它。我正在尝试再次说对不起。@user2606397:这是完全不同的问题;如果你想知道如何在Python中执行JS(在从HTML中提取JS之后),你应该创建一个关于堆栈溢出的新问题。好的,谢谢,如果通过我的尝试无法得到它。我会问,我对我的英语感到很抱歉,谢谢你教Stackoverflow rulls并给出这个答案。