该功能实现了通过输入姓名下载对应的图片
import os
import re
from selenium import webdriver
import requests
import urllib.request
from bs4 import BeautifulSoup
def getIDBeyound(name):
url = "https://search.douban.com/movie/subject_search?search_text=%s&cat=1002"
url = url % name
driver = webdriver.Chrome("chromeD.exe")
driver.get(url)
an = driver.page_source
driver.close()
driver.quit()
idm = re.findall('<a href="https://movie.douban.com/celebrity/(.*?)/',an)
try:
return idm[0]
except:
print("搜索不存在")
exit("吔")
return
def getContent(idm,pag):
hd = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.4071 SLBChan/21"}
url = "https://movie.douban.com/celebrity/%s/photos/?type=C&start=%s&sortby=like&size=a&subtype=a"
url = url%(idm,pag)
print(url)
page = requests.get(url,headers=hd).content.decode("utf-8")
soup = BeautifulSoup(page, 'html.parser')
return soup
def getItem(soup):
code = []
photoList = soup.find('ul', attrs={'class':"poster-col3 clearfix"})
for obj in photoList.find_all('li'):
src = obj.img['src']
code.append(src)
return code
def downloads(index,url):
dir = "photos"
if os.path.isdir("photos") == False:
os.mkdir("photos")
ext = url.split(".")[-1]
opener = urllib.request.build_opener()
opener.addheaders = [('user-agent','Mozilla/5.0')]
path = dir + "/" +str(index) + "." + ext
urllib.request.install_opener(opener)
urllib.request.urlretrieve(url,path)
name = input("请输入搜索姓名")
idm = getIDBeyound(name)
codes = []
a = input("请输入下载张数")
for pag in range(0,a,30):
print("start="+int(pag))
soup = getContent(idm,pag)
code = getItem(soup)
codes.extend(code)
print(codes)
for i,inV in enumerate(codes):
print(i)
downloads(i,inV)