所以我正在尝试编写一个可以在Python 2.7中下载网页源代码的程序。
代码如下所示:
<Legend>
{newColumns.map(function (column) {
return (
<Legend.Item name={column.name}
color={column.color}
click={this.onLegendClick}
mouseOut={this.onLegendMouseOut}
mouseOver={this.onLegendMouseOver}/>
);
}.bind(this))}
</Legend>
然而,当我打开输出文件时,缺少源代码的主要块,而是有一条消息说这个版本的浏览器不受支持,我应该得到另一个。
有没有办法可以避免这个问题?
答案 0 :(得分:2)
查看您列出的网址,我执行了以下操作:
所有3给了我相同的结果文件(相同的大小,相同的内容)。
这可能是因为我没有登录,但我确实看到该网站包含大量可以呈现网页的JavaScript。
我知道您正在尝试使用urllib - 但鉴于上述情况,我会使用selenium并详细说明如何开始使用它。这个例子需要selenium和phantomjs,但你可以用selenium和firefox做同样的事情。
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
browser_agent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
url = 'https://scrap.tf/stranges/47'
dcap = {}
mydriver = None
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = browser_agent
mydriver = webdriver.PhantomJS(desired_capabilities=dcap)
mydriver.implicitly_wait(30)
mydriver.set_window_size(1366,768)
mydriver.get(url)
title = mydriver.title
print (title)
page = mydriver.page_source
# debugging -- get screen shot to see how we look
mydriver.get_screenshot_as_file('/data/screen/test.png')
这会下载页面并正确呈现所有javascript,但您需要登录到需要进行一些互动的Steam。
您可以通过检查Chrome或Firefox中的页面,查找css选择器或xpath以及使用webdriver find_element函数来确定需要执行的操作。
这也允许按键和点击。