selenium+lxml+urllib爬取百度1920*1080壁纸

python3.6

selenium 浏览器自动化测试工具

urllib提供一系列的URL功能,在这里只是用到了下载网络资源的函数urlretrieve

先上代码

导入的库

from selenium import webdriver

from urllib.request import urlretrieve

from urllib.error import HTTPError,ContentTooShortError

from lxml import etree

import time

import re

import socket

import os

下载图片用到的

selenium+lxml+urllib爬取百度1920*1080壁纸_第1张图片

 

 

 

 

 

 

 

 

 

 

 

 

socket.setdefaulttimeout(30)设置urlretrieve请求的超时时间限制

使用selenium的代码,我封装成了一个类

selenium+lxml+urllib爬取百度1920*1080壁纸_第2张图片

运行入口

selenium+lxml+urllib爬取百度1920*1080壁纸_第3张图片

直接百度搜索‘19201080超高清壁纸’等词语,点开百度图片就基本都是1920*1080的壁纸了,我们直接拿到页面的URL赋值给start_url这个变量,实例化封装Selenium的类,传入URL,selenium使用的是Chrome,如果不添加option则会弹出Chrom浏览器。然后因为百度图片一开始只会显示20张左右的图片,当我们向下滑到底部时就会有ajax请求更多的图片进来,所以 bo.glide()就是执行JavaScript语句达到我们下滑的目的,lxml.etree解析selenium传递的HTML页面,使用xpath找到我们需要的图片url,用正则表达式获取每个图片URL里面的图片名字,然后将图片的URL,我们想要保存的目录路径,图片名字,回调函数callBack 传入downLoad函数进行图片资源的下载

以上就是全部了,若有问题或者希望有人一起交流的朋友可以加我,QQ 1193984561

你可能感兴趣的:(selenium+lxml+urllib爬取百度1920*1080壁纸)