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

时间:2013-10-12 13:23:11

标签: python python-2.7 subprocess

我想知道是否有办法在浏览器中打开网址并阅读源打开的网址? 我正在尝试检查我的XPath选择器是否正确获取验证码img src的值。我不能这样做2连接到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

你们中的任何人都知道如何解决它吗?

由于

3 个答案:

答案 0 :(得分:1)

我找到了解决方案。要在浏览器中查看网址并同时查看此页面的源代码,请使用以下代码:

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

希望它会帮助别人 无论如何,谢谢你的帮助

答案 1 :(得分:0)

大多数跨平台python GUI工具包(例如wx.Python,pyside等)都有一个html显示窗口,您可以使用它来显示python中的html源代码。我建议使用其中一个在你的python代码中显示你的内容。

答案 2 :(得分:0)

您可能需要提出多个请求来获取CAPTCHA。给自己一份Fiddler 2(免费)http://fiddler2.com/get-fiddler。它将允许您查看服务器和浏览器之间的“对话”。一旦你看到了,你可能会知道你需要什么。