欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python使用selenium爬取Ajax网页(以百度图片小姐姐为例)

程序员文章站 2022-05-04 12:07:06
...

爬取百度图片小姐姐链接

如果用静态网页去获取网页源代码会发现图片不在里面

这是一个由JS加载图片的动态网页

,使selenium,没关系,我们可以使用selenium动态模拟浏览器行为,去爬取所有图片

selenium,\color{Red}由于笔者也是刚入门的selenium,所以新手大可放心

,,看不懂函数就去百度,都是一些很基础的函数,易学

,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()

在原版上加上插入图片链接到数据库

看源码点我

相关标签: python爬虫