如 果 用 静 态 网 页 去 获 取 网 页 源 代 码 会 发 现 图 片 不 在 里 面 如果用静态网页去获取网页源代码会发现图片不在里面 如果用静态网页去获取网页源代码会发现图片不在里面
这是一个由JS加载图片的动态网页
没 关 系 , 我 们 可 以 使 用 s e l e n i u m 动 态 模 拟 浏 览 器 行 为 , 去 爬 取 所 有 图 片 没关系,我们可以使用selenium动态模拟浏览器行为,去爬取所有图片 没关系,我们可以使用selenium动态模拟浏览器行为,去爬取所有图片
由 于 笔 者 也 是 刚 入 门 的 s e l e n i u m , 所 以 新 手 大 可 放 心 \color{Red}由于笔者也是刚入门的selenium,所以新手大可放心 由于笔者也是刚入门的selenium,所以新手大可放心
看 不 懂 函 数 就 去 百 度 , 都 是 一 些 很 基 础 的 函 数 , 易 学 看不懂函数就去百度,都是一些很基础的函数,易学 看不懂函数就去百度,都是一些很基础的函数,易学
注 释 都 在 代 码 里 了 , 短 短 30 行 , 很 轻 松 注释都在代码里了,短短30行,很轻松 注释都在代码里了,短短30行,很轻松
import requests
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time
url = "https://image.baidu.com/"
#name =input()
name='小姐姐'
b = webdriver.Chrome('D://迅雷下载//chromedriver.exe') #打开谷歌,注意括号内是填写你的驱动路径
b.get(url) #进入百度图片
search_box = b.find_element_by_id('kw') #找到id=kw的输入框
search_box.send_keys(name) #输入名字
search_box.send_keys(Keys.ENTER) #确定搜索
def get_src():
size_all = b.find_element_by_xpath('//*[@id="sizeFilter"]/div/div') #选择尺寸
ActionChains(b).move_to_element(size_all).perform() #鼠标悬浮在尺寸上面
most_big = b.find_element_by_xpath('//*[@id="sizeFilter"]/div/ul/li[2]') #找到特大尺寸
most_big.click() #点击特大尺寸
time.sleep(2) #注意一定是睡觉!!不然加载不出来
first_img = b.find_element_by_xpath('//*[@id="imgid"]/div/ul/li[1]/div/a/img') #找到第一张图片
first_img.click() #点击第一张图片
def com():
b.switch_to.window(b.window_handles[1]) #换到另一张网页去
for i in range(0,30): #爬30张
img_src = b.find_element_by_xpath('//*[@id="currentImg"]') #找到每张图片
print(img_src.get_attribute('src')) #打印所有的src
next = b.find_element_by_xpath('//*[@id="container"]/span[2]/span') #找到向后的按 钮
next.click()
get_src()
com()
在 原 版 上 加 上 插 入 图 片 链 接 到 数 据 库 在原版上加上插入图片链接到数据库 在原版上加上插入图片链接到数据库