马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
from bs4 import BeautifulSoup
from urllib.request import urlretrieve
import os
from selenium import webdriver
list_src = []
count = 10
url = 'https://jandan.net/ooxx/page-46#comments'
while count > 0 :
options = webdriver.ChromeOptions()
options.add_argument('User-Agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"')
#下面两行为使用chrome的headless模式,即不用每次都打开浏览器的窗口
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver=webdriver.Chrome(chrome_options=options)
"""打开网页"""
driver.get(url)
#selenium的page_source方法可以获取到页面源码
"""获取打开的网页源码"""
html = driver.page_source
driver.close()
#用BeautifulSoup解析网页源码
bf = BeautifulSoup(html,'lxml')
#print(bf.prettify())
#我们通过分析网页源码得知,图片是保存在div class='content'里面
#用BeautifulSoup获取所有class属性content的div标签,再把每个标签的href存入list
"""
CSS类名搜索tag的功能非常实用,但标识CSS类名的关键字 class 在Python中是保留字,
使用 class 做参数会导致语法错误.从Beautiful Soup的4.1.1版本开始,
可以通过 class_ 参数搜索有指定CSS类名的tag
"""
target_urls = bf.find_all(name='div',class_='row')
#print(target_urls)
for each in target_urls:
#图片网址存入列表
list_src.append(each.img.get('src'))
#print(list_src)
#改变网址
url = 'https://jandan.net/ooxx/page-%d#comments'% (count - 1)
count -= 1
#存储图片
os.mkdir('mm')
os.chdir('mm')
for i in list_src:
filename = os.getcwd()+'\mm'+i.split('/')[-1]
#filename='存储路径'+'存储文件名'
urlretrieve(i,filename)
print('下载完成')
|