有没有办法使用 python 中的硒来抓取位于地址栏中的页面 url(或其一部分)?
Is there a way to scrape the page url (or a part of it) located in the address bar using selenium in python?
我正在处理一个庞大的电影数据集,我正在尝试从 IMDB 网站获取每部电影的 IMDb ID。我在 Python 中使用 selenium
。我检查了,但在电影页面中找不到 IMDB 代码。它包含在页面的 link 中,位于地址栏中,我不知道如何抓取它。有什么方法可以做到这一点吗?
这是页面示例:
我需要获取 url 中带下划线的部分。
有人知道怎么做吗?
尝试driver.current_url
参考:https://selenium-python.readthedocs.io/api.html
此外,值得注意的是 IMDB 有官方 API。你也可以看看https://aws.amazon.com/marketplace/pp/prodview-bj74roaptgdpi?sr=0-1&ref_=beagle&applicationId=AWSMPContessa
如果你想获取电影 url 的 title
你需要先获取 current_url
然后使用 python split()
函数你可以获取倒数第二个字符串。
currenturl=driver.current_url.split("/")[-2]
print(currenturl)
这将返回 tt1877830
提取页面url9或其中的一部分,即下划线部分)例如tt1877830,您可以提取 并将其拆分为 /
字符,您可以使用以下任一解决方案:
使用正指数:
driver.get('https://www.imdb.com/title/tt1877830/?ref_=fn_al_tt_1')
WebDriverWait(driver, 20).until(EC.url_contains("title"))
print(driver.current_url.split("/")[4])
控制台输出:
tt1877830
使用负索引:
driver.get('https://www.imdb.com/title/tt1877830/?ref_=fn_al_tt_1')
WebDriverWait(driver, 20).until(EC.url_contains("title"))
print(driver.current_url.split("/")[-2])
控制台输出:
tt1877830
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
我正在处理一个庞大的电影数据集,我正在尝试从 IMDB 网站获取每部电影的 IMDb ID。我在 Python 中使用 selenium
。我检查了,但在电影页面中找不到 IMDB 代码。它包含在页面的 link 中,位于地址栏中,我不知道如何抓取它。有什么方法可以做到这一点吗?
这是页面示例:
我需要获取 url 中带下划线的部分。
有人知道怎么做吗?
尝试driver.current_url
参考:https://selenium-python.readthedocs.io/api.html
此外,值得注意的是 IMDB 有官方 API。你也可以看看https://aws.amazon.com/marketplace/pp/prodview-bj74roaptgdpi?sr=0-1&ref_=beagle&applicationId=AWSMPContessa
如果你想获取电影 url 的 title
你需要先获取 current_url
然后使用 python split()
函数你可以获取倒数第二个字符串。
currenturl=driver.current_url.split("/")[-2]
print(currenturl)
这将返回 tt1877830
提取页面url9或其中的一部分,即下划线部分)例如tt1877830,您可以提取 /
字符,您可以使用以下任一解决方案:
使用正指数:
driver.get('https://www.imdb.com/title/tt1877830/?ref_=fn_al_tt_1') WebDriverWait(driver, 20).until(EC.url_contains("title")) print(driver.current_url.split("/")[4])
控制台输出:
tt1877830
使用负索引:
driver.get('https://www.imdb.com/title/tt1877830/?ref_=fn_al_tt_1') WebDriverWait(driver, 20).until(EC.url_contains("title")) print(driver.current_url.split("/")[-2])
控制台输出:
tt1877830
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC