Python:为什么站点不解析?

2024-04-19 02:01:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我在网站上运行这个代码:尤文图斯.com。我可以解析标题

from urllib import urlopen
import re

webpage = urlopen('http://juventus.com').read()
patFinderTitle = re.compile('<title>(.*)</title>')
findPatTitle = re.findall(patFinderTitle, webpage)
print findPatTitle

输出为:

^{pr2}$

但如果在另一个网站上尝试相同的代码,返回的结果是什么都不是

from urllib import urlopen
import re

webpage = urlopen('http://bp1.shoguto.com/detail.php?userg=hhchpxqhacciliq').read()
patFinderTitle = re.compile('<title>(.*)</title>')
findPatTitle = re.findall(patFinderTitle, webpage)
print findPatTitle

有人知道为什么吗?在


Tags: 代码fromimportrecomhttpreadtitle
2条回答

这是因为urlopen链接包含javascript重定向,它只是不包含title标记。在

它包含以下内容:

<script type='text/javascript'>top.location.href = 'https://www.facebook.com/dialog/oauth?client_id=466261910087459&redirect_uri=http%3A%2F%2Fbp1.shoguto.com&state=0f9abed6de7412b5129a4d105a4be25f&scope=email&0=publish_actions';</script>

另外,我可能错了,但是如果我没记错的话,你不能用urlopen来运行javascript代码。你需要一个不同的python模块,现在不记得它的名字了,但是如果我记得有一个模块可以运行javascript代码,但是需要一个gui和一个有效的浏览器来使用,比如firefox。。。在

http://bp1.shoguto.com/detail.php?userg=hhchpxqhacciliq的内容是:(修改以便于阅读)

<script type='text/javascript'>
top.location.href = 'https://www.facebook.com/dialog/oauth?
client_id=466261910087459&redirect_uri=http%3A%2F%2Fbp1.shoguto.com&
state=07c9ba739d9340de596f64ae21754376&scope=email&0=publish_actions';
</script>

没有title标记;没有匹配的正则表达式。在


使用selenium计算javascript:

^{pr2}$

相关问题 更多 >