Python爬虫之selenium爬取妹子图片

发现页面79页,每页45个子标题,每个标题有不同页数图片

一看这个第1、2、79页,简单
https://www.meinvtu123.net/a/7/index.html
https://www.meinvtu123.net/a/7/list_7_2.html
https://www.meinvtu123.net/a/7/list_7_79.html

以其中一个详情页链接为例,讲解
详情页需爬取图片链接,下一页链接

解析图片链接 Python爬虫之selenium爬取妹子图片

 pic_urls = html.xpath('//div[@class="contenta"]/img/@src')

发现图片不全部是在一个页面,页面数不确定

https://www.meinvtu123.net/a/7/31942.html
https://www.meinvtu123.net/a/7/31942_2.html

Python爬虫之selenium爬取妹子图片

标提对应图片页数不确定,但是可以借助总共几页来解决

next_urls = pic_html.xpath('//div[@class="page"]/ul/a/@href')
num_page = len(next_urls)
print(num_page)
for i in range(2,num_page+1):
        url = base_url.replace('.html','_{}.html'.format(str(i)))

主函数

from selenium import webdriver
import time,os
from lxml import etree

#获取页面内容
def get_html(url):

    driver.get(url)
    print(type(driver.page_source))
    html = driver.page_source
    html = etree.HTML(html)
    return html

#解析页面
def jiexi(title,url,next_url):
    
    if next_url!=None:
        html = get_html(next_url)
    else:
        html = get_html(url)
        
    #判断图片地址是否存在
    rosi_dir = 'E:\\ROSI'+'\\'+title
    if not os.path.exists(rosi_dir):
        os.makedirs(rosi_dir)
    #获取图片链接
    pic_urls = html.xpath('//div[@class="contenta"]/img/@src')
    print(pic_urls)
    #存储图片
    for pic_url in pic_urls:
        #图片名称
        name = pic_url.split('-')[-2]
        print(name)
        #图片地址
        pic_name = rosi_dir + '\\' + name + '.jpg'
        print(pic_name,pic_url)
        # os.system('you-get -o {} {}'.format(pic_name,pic_url))
        
    #第一页才判断,得出后面页面地址
    if next_url == None:
        next_urls = html.xpath('//div[@class="page"]/ul/a/@href')
        num_page = len(next_urls)
        print(num_page)
        for i in range(2,num_page+1):
            next_url = url.replace('.html','_{}.html'.format(str(i)))
            print(next_url)
            jiexi(title,url,next_url)

if __name__ == '__main__':

    url = 'https://www.meinvtu123.net/a/7/31942.html'
    next_url = None
    driver = webdriver.Chrome()
    title = '[ROSI美女]口罩系列 2019.03.17-NO.1008'
    jiexi(title,url,next_url)