Python 访问URL会打开两个页面(在两个选项卡中),我希望能够从两个页面中选择一个

Python 访问URL会打开两个页面(在两个选项卡中),我希望能够从两个页面中选择一个,python,selenium,web-scraping,Python,Selenium,Web Scraping,我正在使用selenium来刮取一些产品页面,但最近我只得到了登录页面(而不是我想要的产品页面)。因此,我尝试在浏览器中加载页面,结果发现访问任何产品URL都会打开两个选项卡:一个用于登录,另一个用于产品本身。 因此,我不需要登录,我只需要能够从每次尝试访问URL时打开的两个页面中的一个页面中刮取 我有一个数据框,其中包含URL和需要删除的不同字段,因此我将URL作为“myurl”传递给此函数: item_id=myurl[20:-5] browser.get(myurl) html = bro

我正在使用selenium来刮取一些产品页面,但最近我只得到了登录页面(而不是我想要的产品页面)。因此,我尝试在浏览器中加载页面,结果发现访问任何产品URL都会打开两个选项卡:一个用于登录,另一个用于产品本身。 因此,我不需要登录,我只需要能够从每次尝试访问URL时打开的两个页面中的一个页面中刮取

我有一个数据框,其中包含URL和需要删除的不同字段,因此我将URL作为“myurl”传递给此函数:

item_id=myurl[20:-5]
browser.get(myurl)
html = browser.page_source
soup = BeautifulSoup(html, 'lxml')
try:
    titulo = soup.find('div', {'class':'sku-name'}).get_text(strip=True)
except:
    titulo=""
然后从汤中读出每个字段 我在python中使用chromedriver


非常感谢您的帮助

如果我没有正确理解您的需求,很抱歉,但是下面的代码对我来说运行良好,它正在逐个打开每个产品页面

from selenium import webdriver
import time

driver = webdriver.Chrome()

# you can make a list of products and feed it into the main URL. to get the
# specific product page. But if you have the range then you can use the below code.
# Save that in a variable and process it by Beautifulsoup.

for i in range(4487300, 4487401):
    driver.get(f'https://item.jd.com/{i}.html')
    time.sleep(5)
    product_page_source = driver.page_source
    print(product_page_source)
注意-有许多网站会让您在达到某个阈值后直接有限地访问产品页面,他们会将您重定向到其登录页面进行身份验证。在您的情况下,情况可能是相同的,但在您的情况下,有两个选项卡正在打开。您可以使用
driver.window\u句柄
识别目标选项卡


如果有帮助,请告诉我。

您能再分享一些代码或URL吗?这样我们才能看到并提出建议。通过查看您的描述,很难了解出了什么问题。当然,这是其中一个URL,这是与项目同时打开的登录URL:谢谢,我尝试了代码,但它仍将我重定向到登录页面。我只是假设我已经被阻止了一段时间,但是当我使用chrome作为浏览器(在python和selenium之外)分析相同的行为时,打开URL打开了两个窗口,所以我认为有一种方法可以切换到其中一个并绕过登录页面Yes,您可以使用selenium切换选项卡-请参阅下面的url了解更多信息。