首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取已在浏览器中打开的源网站

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

Stack Overflow用户
提问于 2013-10-12 13:23:10
回答 3查看 1.8K关注 0票数 0

我想知道是否有任何方式在浏览器中打开url并读取源代码打开的url?我正在检查我的XPath选择器是否获得了captcha img的正确值。我不能这样做,使两个连接到url,因为captcha将重新加载每次我连接到url。

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

代码语言:javascript
复制
url = "https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx"
sock = urllib.urlopen(url)
htmlSource = sock.read()                            
sock.close()

要在浏览器中打开url,我使用:

代码语言:javascript
复制
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

你们知道怎么解决吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-12 13:35:24

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

票数 0
EN

Stack Overflow用户

发布于 2013-10-12 15:49:43

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

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-10-12 13:36:59

你可能需要提出不止一个请求才能得到验证码。给自己一份Fiddler 2(免费) http://fiddler2.com/get-fiddler的副本。它将允许您看到服务器和浏览器之间的“对话”。一旦你看到这一点,你可能会知道你需要什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19334669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档