我想知道是否有任何方式在浏览器中打开url并读取源代码打开的url?我正在检查我的XPath选择器是否获得了captcha img的正确值。我不能这样做,使两个连接到url,因为captcha将重新加载每次我连接到url。
对于我正在使用的阅读源:
url = "https://prod.ceidg.gov.pl/CEIDG/CEIDG.Public.UI/Search.aspx"
sock = urllib.urlopen(url)
htmlSource = sock.read()
sock.close()要在浏览器中打开url,我使用:
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你们知道怎么解决吗?
谢谢
发布于 2013-10-12 13:35:24
大多数跨平台python工具包,如wx.Python、pyside等,都有一个html显示窗口,您可以使用该窗口从您的python中显示html源代码。我建议使用其中之一在python代码中显示内容。
发布于 2013-10-12 15:49:43
我找到了解决办法。要在浏览器中查看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希望它能对其他人有所帮助,谢谢你的帮助。
发布于 2013-10-12 13:36:59
你可能需要提出不止一个请求才能得到验证码。给自己一份Fiddler 2(免费) http://fiddler2.com/get-fiddler的副本。它将允许您看到服务器和浏览器之间的“对话”。一旦你看到这一点,你可能会知道你需要什么。
https://stackoverflow.com/questions/19334669
复制相似问题