【初学Python爬虫】使用selenium、BeautifulSoup爬图片

news/2024/7/19 8:50:32 标签: python, 爬虫, selenium

准备工作:利用selenium自动刷新网页
python代码:

'''
Author: lu
Date: 2022-09-19 14:27:31
LastEditors: lu
LastEditTime: 2022-09-21 17:13:16
FilePath: \study\savePic.py
Description: 爬图片
'''
#python savePic.py

#pip install os

import os
import requests
import bs4
from bs4 import BeautifulSoup #pip install BeautifulSoup4
from selenium.webdriver import Chrome
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.options import Options



webdrive = Chrome(executable_path=r"C:\Users\18851\AppData\Local\Programs\Python\Python310\Scripts\chromedriver.exe") #chromedriver路径
url = "https://www.csdn.net/" #要爬的网站

webdrive.get(url) #发请求
text = webdrive.page_source #得到页面element的html代码
tree = BeautifulSoup(text,"html.parser")
imgs =  tree.find_all('img')
path=r'./phhz'#判断同级有没有文件夹
print(os.path.exists(path))
if(not os.path.exists(path)):#如果同级没有文件夹
    os.mkdir(path)

url = ''
for i in range(1,len(imgs)):
    print('imgs[i] ', imgs[i] )  #标签
    print('imgs[i] ',type(imgs[i] ) )  #是BeautifulSoup标签
    if(imgs[i].has_key('data-src')):   #判断BeautifulSoup获取的标签有没有属性
        url = imgs[i].attrs['data-src']
    else:   
        url = imgs[i].attrs['src']
    img = requests.get(url)
    filename = 'phhz'+str(i)+'.jpg'
    with open('./phhz/'+filename,'wb') as f: f.write(img.content)
webdrive.quit()

结果结果


http://www.niftyadmin.cn/n/497132.html

相关文章

用shell编写批量打包日志脚本

脚本1#!/bin/bash DATE$(date %Y%m%d%H%M) NAME$(echo $1 | awk -F, {print NF}) LOG_PATH"$2" if [ $# -ne 2 ];thenecho "USAGE: sh $0 log_name1,log_name2 log_path"exit fi for NUM in seq 1 $NAME doLOG_NAME$(echo $1 | cut -d , -f $NUM)for i in …

项目无法启动Syntax Error: TypeError: Cannot read property ‘range‘ of null;Syntax Error: TypeError: Cannot

问题一: Syntax Error: TypeError: Cannot read property ‘range’ of null 来源:http://events.jianshu.io/p/814463ce4a04 babel-eslint版本问题: 常见出问题的比如"babel-eslint": “^10.0.3” 解决方法一:可更换…

【已解决】node.js, pool连接池连不上,connection是undefined

pool连接池,pool.getConnection报错 throw err; // Rethrow non-MySQL errors^TypeError: Cannot read property query of undefined代码: pool.getConnection((err, connection) > {console.log(进请求啦)let postData req.query;//get请求参数在q…

【Vue】ElementUI、ECharts使用 cdn引入

【Vue】ElementUI、ECharts使用 cdn引入 文章目录【Vue】ElementUI、ECharts使用 cdn引入1、修改 public/index.html:2、vue.config.js3、main.js4、使用参考: https://juejin.cn/post/68989077713626071181、修改 public/index.html: head里…

【已解决,微信小程序】小程序手机发请求失败,电脑扫码可以,真机调试可以

问题:小程序体验版手机发请求失败,电脑扫码体验版可以,真机调试可以,体验版手机端点右上角三点开启调试可以 原因:小程序后台配置不对 我的后端是https://xx.xx.xx:3000 小程序后台配置也要加端口号!80的…

【腾讯云网站备案】

1、网站备案,不备案的话域名可能被屏蔽,网站访问域名出不来 腾讯云备案 一步步来就可 注意点 主体信息的通信地址得最详细 ,备注通信地址已为最详细 地址都和证件住址保持一个省,视频核身ip也是保持一个省,白色背…

Linux性能优化实战学习笔记:第三十四讲=====网络/带宽

Linux性能优化实战学习笔记:第三十四讲 一、上节回顾 上一节,我带你学习了 Linux 网络的基础原理。简单回顾一下,Linux 网络根据 TCP/IP模型,构建其网络协议栈。TCP/IP 模型由应用层、传输层、网络层、网络接口层等四层组 成&a…

原生JS JavaScript实现懒加载效果

我是一名接触编程不久的小白,今天为大家带来这个案例,希望可以帮助到你。 懒加载是现在常见的的一种加载方式,是滑动到一定距离才加载新的数据,这样可以减少设备内存的负担。 话不多说,开始展示吧. 这个懒加载效果使…