python使用selenium爬取Ajax网页(以百度图片小姐姐为例)
程序员文章站
2022-05-04 12:07:06
...
这是一个由JS加载图片的动态网页
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()