python - 我想使用 Selenium Python 从谷歌搜索中获取前 10 个图像 url
问题描述
我想从谷歌搜索(不是 base64)中获取前 10 个图像 url。我有代码:
import os
import base64
import time
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
searchterm = 'bananas' # will also be the name of the folder
url = "https://www.google.com/search?q=banan&source=lnms&tbm=isch&sa=X&ved=2ahUKEwj-75rDlJLoAhWLHHcKHStFC6EQ_AUoAXoECA4QAw&biw=1867&bih=951"
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
browser = webdriver.Chrome(executable_path=ChromeDriverManager().install(), options=options)
browser.get(url)
actions = webdriver.common.action_chains.ActionChains(browser)
header = {
'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36"}
counter = 0
succounter = 0
if not os.path.exists(searchterm):
os.mkdir(searchterm)
for i in range(0, 11):
time.sleep(1)
x = browser.find_elements_by_xpath('//*[@id="islrg"]/descendant::img')[i]
x.click()
i += 1
if i > 10:
break
ba = browser.find_element_by_xpath('//*
[@id="Sva75c"]/div/div/div[3]/div[2]/div/div[1]/div[1]/div/div[2]/a/img')
print(ba.get_attribute('src'))
它返回图像 url,但有时返回 base64。如何使脚本始终返回图像 url?谢谢你。
解决方案
更改xpath以获取链接而不是图像,然后获取href。
ba = browser.find_element_by_xpath("//div[@class='islrc']//a[@href][@rel='noopener']")
print(ba.get_attribute("href")
推荐阅读
- sql - 如何为另一个表中的每个半相关记录显示一个表中的所有记录?
- angular - Typescript Observable 继承
- flutter - 如何让 AppBar 从顶部滑动并覆盖屏幕内容,就像 inshorts 应用栏一样
- swift - Xcode - 伞框架 - 缺少模块
- r - 多元回归预测区间误差
- css - 在 DIV 中定位元素
- docker - 烧瓶开发服务器的 nginx proxy_pass 连接被拒绝
- reactjs - 元标签反应js
- java - 如何在 RecyclerView 中添加 FloatingActionButton
- android - Android-Studio:如何使资源字符串值与其名称相同