Python 如何阅读已在浏览器中打开的源网站

Python 如何阅读已在浏览器中打开的源网站,python,python-2.7,subprocess,Python,Python 2.7,Subprocess,我想知道是否有办法在浏览器中打开url并读取源代码打开的url? 我试图检查我的XPath选择器是否获得了正确的captcha img src值。我无法连接两个url,因为每次连接url时都会重新加载验证码 对于我正在使用的阅读源: url = "https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx" sock = urllib.urlopen(url) htmlSource = sock.read()

我想知道是否有办法在浏览器中打开url并读取源代码打开的url? 我试图检查我的XPath选择器是否获得了正确的captcha img src值。我无法连接两个url,因为每次连接url时都会重新加载验证码

对于我正在使用的阅读源:

url = "https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx"
sock = urllib.urlopen(url)
htmlSource = sock.read()                            
sock.close()
if sys.platform=='win32':
    os.startfile(url)
elif sys.platform=='darwin':
    subprocess.Popen(['open', url])
else:
    try:
        subprocess.Popen(['xdg-open', url])

    except OSError:
        print 'Please open a browser on: '+url
要在我使用的浏览器中打开url,请执行以下操作:

url = "https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx"
sock = urllib.urlopen(url)
htmlSource = sock.read()                            
sock.close()
if sys.platform=='win32':
    os.startfile(url)
elif sys.platform=='darwin':
    subprocess.Popen(['open', url])
else:
    try:
        subprocess.Popen(['xdg-open', url])

    except OSError:
        print 'Please open a browser on: '+url
你们有谁知道怎么解决这个问题吗


谢谢

大多数跨平台python GUI工具包,如pyside等,都有一个html显示窗口,您可以使用该窗口从python中显示html源代码。我建议您使用其中一个来显示python代码中的内容。

您可能需要发出多个请求才能获得验证码。给自己买一本Fiddler 2(免费)。它将允许您查看服务器和浏览器之间的“对话”。一旦你看到这一点,你可能就会知道你需要什么。

我找到了解决办法。要在浏览器中查看url,同时查看此页面的源代码,请使用以下代码:

from selenium import webdriver
from lxml import etree, html

url = "https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx"
adres_prefix = "https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/"
adres_sufix = etree.XPath('string(//img[@class="captcha"]/@src)')

browser = webdriver.Firefox()
browser.get(url)
html_source = browser.page_source # i'm getting source code of open url

root = etree.HTML(html_source)
result = etree.tostring(root, pretty_print=True, method="html")
result2 = adres_sufix(root)
www = adres_prefix + result2
print www # now i see if XPath gives me right value
希望它能帮助别人
无论如何,感谢您的帮助

我将尝试wx.Python。希望我能找到一些有用的例子,我不需要发出多个请求:)事实上,如果你仔细检查内容,你会发现需要发出大量的服务器请求。特别是这个url,相对于引用者,“captcha.ashx?id=ac2ddb38-4675-43e1-96d0-717e6ff15e16&asmp3=1&t=”是为您提供验证码的url。通过在您的系统上使用selenium和Firefox的webdriver组件,您可以隐藏这一点,它负责发出所有必要的请求。