首页 编程教程正文

python爬取 优美图库 美女写真

piaodoo 编程教程 2020-02-22 22:16:55 1393 0 python教程

本文来源吾爱破解论坛

本帖最后由 QingYeMuRong 于 2020-2-2 14:18 编辑

源码分享  附件文件自己下载,下载后把后缀.txt修改成.py就可以了,  这个爬虫使用的是for循环,适合新手学习。有兴趣的朋友可以自己改成def函数形式或者class类。
Author = QingYeMuRong

    import requests
    from lxml import etree
    from urllib.request import urlretrieve
    from urllib.parse import urlencode
    import re
    import os
    import time
    import random
    ua = [  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36", #chrome
                                    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)", #搜狗
                                    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)", #360
                                    "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0" #火狐
                                    ]
    headers ={
                    "User-Agent":random.choice(ua)
                    }
    print(random.choice(ua))
    for i in range(1,2):  #可以自己定义爬取页数  这个文档就爬取1页
                    url = "http://www.umei.cc/meinvtupian/meinvxiezhen/"+str(i)+".htm"
                    res = requests.get(url,headers=headers)
                    data = res.content.decode('utf-8')
                    treeData = etree.HTML(data)
                    title = treeData.xpath('//title/text()')
                    print(title)
                    urls = treeData.xpath('//*[@class="TypeList"]/ul/li/a/@href') #起始地址url
                    titles = treeData.xpath('//*[@class="TypeList"]/ul/li/a/div/text()') #所有的url起始地址名称
                    print(urls)
                    print(titles)
                    for j in range(0,len(urls)):
                                    k=titles[j]
                                    file = 'D:/photos/'+k #D盘创建一个photos 文件夹 保存照片
                                    # 判断文件是否存在,不存在则创建
                                    #获取页数
                                    res1 = requests.get(urls[0],headers=headers)
                                    data1 = res1.content.decode('utf-8')
                                    part1 = '<li><a>共(.*?)页'
                                    url_num =re.compile(part1,re.S).findall(data1)
                                    print(url_num[0])
                                    if not os.path.exists(file):
                                                    os.makedirs(file)
                                                    print('--创建成功--')

                                    for n in range(0,eval(url_num[0])):
                                                    if n==0 :
                                                                    urls3 = urls[j]
                                                    else:
                                                                    urls3 = urls[j][:-4]+'_'+str(n+1)+'.htm'
                                                                    # print(urls3)
                                                    print(urls3)
                                                    try:
                                                                    res2 = requests.get(urls3,headers=headers)
                                                                    data2 = res2.content.decode('utf-8')
                                                                    # print(data1)
                                                                    part2 = '<img alt.*?src="(.*?)" />'
                                                                    photo_url = re.compile(part2,re.S).findall(data2)
                                                                    print(photo_url)
                                                                    path = 'D:/photos/'+k+'/'+str(n+1)+'.jpg'
                                                                    urlretrieve(photo_url[0],path)
                                                                    print("下载完成,程序挂起0.5s") #防止爬取速度过快
                                                                    time.sleep(0.5)
                                                    except Exception as err:
                                                                    print(err)

Ashampoo_Snap_2020年2月2日_13h09m29s_002_.png (170.43 KB, 下载次数: 9)

下载附件  保存到相册

2020-2-2 13:20 上传

Ashampoo_Snap_2020年2月2日_13h09m29s_002_.png

Ashampoo_Snap_2020年2月2日_13h09m59s_003_.png (144.75 KB, 下载次数: 6)

下载附件  保存到相册

2020-2-2 13:20 上传

Ashampoo_Snap_2020年2月2日_13h09m59s_003_.png

Ashampoo_Snap_2020年2月2日_13h08m48s_001_.png (34.44 KB, 下载次数: 3)

下载附件  保存到相册

2020-2-2 13:19 上传

Ashampoo_Snap_2020年2月2日_13h08m48s_001_.png
嗨学网

Umei.txt

2020-2-2 13:26 上传

点击文件名下载附件

下载积分: 吾爱币 -1 CB

2.63 KB, 下载次数: 158, 下载积分: 吾爱币 -1 CB

某度无法分享,下载后把后缀.txt改成.py就行

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/8095.html

搜索