python selenium:可以取消 driver.get() 上的重定向吗?
python selenium: possible to cancel redirect on driver.get()?
有没有办法阻止 url 重定向?
driver.get('http://loginrequired.com')
这会将我重定向到另一个页面,但我希望它保留在该页面上而不默认重定向。
用户所谓的“重定向”通常通过两种方式发生:
您加载了一个页面,该页面加载了一些 JavaScript 代码,该代码执行测试并决定加载另一个页面。在某些浏览器中,可以通过按 ESCAPE 键来中断此过程。 Selenium 可以发送一个 ESCAPE 键。
但是,这种重定向可能会在 Selenium 将控制权交还给您的脚本之前发生。它是否适用于任何特定情况取决于正在加载的页面。
您加载页面并从服务器获得 HTTP 3xx(301、303、304 等)响应。用户没有机会在他们的浏览器中中断这些重定向,因此 Selenium 不提供中断或阻止它们的方法。
所以没有万无一失的方法来防止 Selenium 中的重定向。
一个解决方案,如果你不需要可视化页面但访问“http://loginrequired.com”的源将是使用 Selenium 和 Scrapy。
基本上你告诉 Scrapy 中间件停止重定向,当蜘蛛访问页面时,重定向是处理重定向 (302)。
在 setting.py 你必须设置
"REDIRECT_ENABLED=False"
爬虫代码是:
class LoginSpider(CrawlSpider):
name = "login"
allowed_domains = ['loginrequired.com']
start_urls = ['http://loginrequired.com']
handle_httpstatus_list = [302]
def __init__(self):
self.driver = webdriver.Firefox()
def parse(self, response):
if response.status in self.handle_httpstatus_list:
return Request(url="http://loginrequired.com", callback=self.after_302)
def after_302(self, response):
print response.url
# Your code to analysis the page by here
灵感来自 how to handle 302 redirect in scrapy
有没有办法阻止 url 重定向?
driver.get('http://loginrequired.com')
这会将我重定向到另一个页面,但我希望它保留在该页面上而不默认重定向。
用户所谓的“重定向”通常通过两种方式发生:
您加载了一个页面,该页面加载了一些 JavaScript 代码,该代码执行测试并决定加载另一个页面。在某些浏览器中,可以通过按 ESCAPE 键来中断此过程。 Selenium 可以发送一个 ESCAPE 键。
但是,这种重定向可能会在 Selenium 将控制权交还给您的脚本之前发生。它是否适用于任何特定情况取决于正在加载的页面。
您加载页面并从服务器获得 HTTP 3xx(301、303、304 等)响应。用户没有机会在他们的浏览器中中断这些重定向,因此 Selenium 不提供中断或阻止它们的方法。
所以没有万无一失的方法来防止 Selenium 中的重定向。
一个解决方案,如果你不需要可视化页面但访问“http://loginrequired.com”的源将是使用 Selenium 和 Scrapy。
基本上你告诉 Scrapy 中间件停止重定向,当蜘蛛访问页面时,重定向是处理重定向 (302)。
在 setting.py 你必须设置
"REDIRECT_ENABLED=False"
爬虫代码是:
class LoginSpider(CrawlSpider):
name = "login"
allowed_domains = ['loginrequired.com']
start_urls = ['http://loginrequired.com']
handle_httpstatus_list = [302]
def __init__(self):
self.driver = webdriver.Firefox()
def parse(self, response):
if response.status in self.handle_httpstatus_list:
return Request(url="http://loginrequired.com", callback=self.after_302)
def after_302(self, response):
print response.url
# Your code to analysis the page by here
灵感来自 how to handle 302 redirect in scrapy