如何获得真正的html页面源代码?

2024-10-01 15:46:13 发布

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

每次使用标准库时,比如urllib2,requests,pycurl,我都得不到完整的源代码。我怎样才能像我在chrome,firefox,等等那里得到完整的源代码呢。 我试着这样做:

def go_to(link):
    headers = {'User-Agent': USER_AGENT,
               'Accept': ACCEPT,
               'Accept-Encoding': ACCEPT_ENCODING,
               'Accept-Language': ACCEPT_LANGUAGE,
               'Cache-Control': CACHE_CONTROL,
               'Connection': CONNECTION,
               'Host': HOST}
    req = urllib2.Request(link, None, headers)
    response = urllib2.urlopen(req)
    return response.read()

谢谢你!在

对不起,我的英语不好。在

升级版: 这是来自浏览器的完整代码:

^{pr2}$

这不是我脚本中的完整代码:

<font class="spy14">192.3.10.113<script type="text/javascript">document.write("<font class=spy2>:<\/font>"+(Eight7FiveSix^Seven1One)+(FiveZeroTwoOne^Two3Zero)+(Eight7FiveSix^Seven1One)+(Eight7FiveSix^Seven1One))</script></font>

Tags: 代码标准源代码responselinkscripturllib2req
2条回答

最佳解决方案是:

import sys  
from PyQt4.QtGui import *  
from PyQt4.QtCore import *  
from PyQt4.QtWebKit import *  

class Render(QWebPage):  
  def __init__(self, url):  
    self.app = QApplication(sys.argv)  
    QWebPage.__init__(self)  
    self.loadFinished.connect(self._loadFinished)  
    self.mainFrame().load(QUrl(url))  
    self.app.exec_()  

  def _loadFinished(self, result):  
    self.frame = self.mainFrame()  
    self.app.quit()  

url = 'http://webscraping.com'  
r = Render(url)  
html = r.frame.toHtml() 

来源:http://webscraping.com/blog/Scraping-JavaScript-webpages-with-webkit/

升级版: 输出类型为QString。 如果你想把它转换成字符串使用

^{pr2}$

由于在形成网页时可能会涉及到javascript、^{}调用,为了确保您获得的源代码与在浏览器中看到的相同,您需要使用实际使用浏览器的工具,如^{}

from selenium import webdriver

browser = webdriver.Firefox()
browser.get(link)

print browser.page_source

相关问题 更多 >

    热门问题