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
以其中一个详情页链接为例,讲解
详情页需爬取图片链接,下一页链接
解析图片链接
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
标提对应图片页数不确定,但是可以借助总共几页来解决
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)