Python 爬取百度图片里面的 银行卡 相关图片

简单整理一下思路。

先用 selenium 定位image 的xpath,一般图片的标签都是 img,具体的话可以直接 打开对应的浏览器 F12 找一下

然后 用   get_attribute   方法 获取 标签内 属性的值。需要具体看一下img 对应的url是哪个属性。

获取到url 之后,使用 requests.get(url)拿到对应的数据

然后把 images  write 到指定的路径下就可以了

 

直接上代码

# -*- coding: utf-8 -*-
import time
from selenium import webdriver
import requests

driver=webdriver.Chrome()

driver.maximize_window()

driver.implicitly_wait(20)

driver.get("https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&sf=1&fmq=1389861203899_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ala=6&ori_query=%E9%93%B6%E8%A1%8C%E5%8D%A1&fr=ala&ala=1&alatpl=normal&pos=2&oriquery=%E9%93%B6%E8%A1%8C%E5%8D%A1&alaTag=0&&word=%E9%93%B6%E8%A1%8C%E5%8D%A1%20%E5%82%A8%E8%93%84%E5%8D%A1")

time.sleep(1)
i=0
for image in driver.find_elements_by_tag_name("img"):
    print (image.get_attribute("data-imgurl"))
    a = image.get_attribute("data-imgurl")
    try:
        b = a.split('/')
    except:
        continue
    filename = 'D:\Python脚本\爬虫实战\img\\' + b[-1]
    print(filename)
    if not filename.endswith(".jpg") or filename.endswith("jpeg") or filename.endswith(".png"):
        filename = filename+'.png'
    img = requests.get(a)
    print(img.content)
    try:
        with open(filename,"wb") as f:
            f.write(img.content)
    except:
        filename = str(i) + '.png'
        with open(filename,"wb") as f:
            f.write(img.content)

posted @ 2021-08-19 14:47  小清澈  阅读(136)  评论(0编辑  收藏  举报