一开始学习爬虫的时候就想爬一下百度图片,但是怎么也爬不成功。学习了几天才知道,百度图片库中的图片也不是放在源代码里面的,用requests去直接去请求是拿不到的。最近几天学习了一下selenium,也趁着今天我的IP又被某网址封了,我也没有代理可以用,就拿百度图片来练一下,了却一下心愿。
用selenium来爬百度图片就比较简单了,直接进入要爬取类型的图片的第一张详情页,获取源代码,找到图片的url后用request模块中的urlretrieve函数下载到本地。下载完成后找到下一页点击按钮的节点,并进行点击。再重复以上步骤。
具体代码如下:
from selenium import webdriver
from lxml import etree
from urllib import request
import time
class Baidu_pic(object):
def __init__(self):
self.driver = webdriver.Chrome()
self.url = "https://image.baidu.com/search/detail?ct=" \
"503316480&z=0&ipn=d&word=PS%E7%B4%A0%E6%9D%90&step" \
"_word=&hs=0&pn=0&spn=0&di=21230&pi=0&rn=1