马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
额- -是这样的,找了个妹子图片网站练手。写好后是能成功下载图片的。但发现只能下载到封面的小图下来,而不是下载封面内页的大图。自己也换过几次方法都失败告终,请大神们看看是哪里出了问题额谢谢~
import urllib.request
import os
import re
def url_open(url):
req = urllib.request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36')
dakai = urllib.request.urlopen(req)
html = dakai.read().decode('utf-8')
return html
def get_page(html):
tu = r'<a href="(.+.html)"'
find = re.findall(tu,html)
find_list = []
for each in find:
find_list.append('https://www.uumnt.com/' + each)
return find_list
def get_img(html):
img = r'<img src="(.+\.jpg)"'
find_img = re.findall(img,html)
for i in find_img:
ming = i.split('/')[-1]
urllib.request.urlretrieve(i,ming,None)
def you(wen='you'):
os.mkdir(wen)
os.chdir(wen)
if __name__ == '__main__':
you()
url = 'https://www.uumnt.com/meinv/'
urllist = get_page(url_open(url))
for each in urllist:
get_img(url_open(each))
本帖最后由 gopythoner 于 2017-4-24 10:14 编辑
你确定你爬到的全部是小图么,不对吧,应该有几张大图,大部分是小图,一小部分是大图猜对
这个地方,你打开了一个页面之后去提取整个页面的图片是不行的 for i in find_img:
ming = i.split('/')[-1]
urllib.request.urlretrieve(i,ming,None)
其实大图的链接格式和小图是不一样 的,这个需要你改一下正则提取图片链接的格式
加一句判断就可以 因为每个页面只有1张是大图,其他都是小图,你只能提取第一张,那张才是大图,如果你要提取更多,就需要翻页
比如你打开了这个页面https://www.uumnt.com/zipai/16941.html,你只能提取这个<img src="https://newimg.uumnt.com:446/Pics/2017/0424/05/02.jpg"图片链接,这个才是大图,其他都是小图没用的
如果你想提取这个妹子更多的图,就需要翻页
看看第二页链接,是这样 的https://www.uumnt.com/zipai/16941_2.html,然后提取第二页 的图片,以此类推
|