| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5824 人关注过本帖
标题:写了个爬取美女网站套图的爬虫
只看楼主 加入收藏
YH_21_LIU
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2022-4-9
收藏
得分:0 
回复 2楼 chansnsn
需要!!!!!!
2022-04-10 17:58
asdf123422
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-4-19
收藏
得分:0 
严重需要!严重需要~!
2022-04-19 14:32
sssooosss
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:3
帖 子:664
专家分:1115
注 册:2019-8-27
收藏
得分:0 
放代码啊
2022-04-20 17:36
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:0 
给我发一份吧。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2022-04-23 15:54
莫克
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2022-5-2
收藏
得分:0 
至今未放
2022-05-02 15:45
sssooosss
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:3
帖 子:664
专家分:1115
注 册:2019-8-27
收藏
得分:0 
这个有需求么
2022-05-06 16:33
sdg123
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2021-11-23
收藏
得分:0 
不好意思大家,好久没上这个论坛了,忘记这个事情了。我晚上回去发。
2022-05-24 09:23
sdg123
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2021-11-23
收藏
得分:0 
import requests
from bs4 import BeautifulSoup
import os
import re
import time
import PySimpleGUI as sg
import random

#获得每页专辑的地址和专辑名称
def zongwangzhi(url):
    data=paqu(url)
    data=BeautifulSoup(data,"html.parser",from_encoding="gb18030")#解决中文乱码
    d=data.find_all('div',class_="listMeinuT")
    # print(d)
    d=str(d[0])
    findlink=(r'<a class="MMPic"(.*?)</li><li>')
    link=re.findall(findlink,d)

    return link

#获得每个专辑的页数
def yeshu(url):
    sj=paqu(url)
    data=BeautifulSoup(sj,"html.parser",from_encoding="gb18030")
    y=data.find_all("ul",class_="articleV4Page l")
    y=str(y[0])
    findy=(r'共(.*?)页:')
    linky=re.findall(findy,y)
    return int(linky[0])


#拼接专辑地址
def zhuanjidiz(url,cs,wenjiandz):
    for i in range(1,cs+1):
        if i==1:
            url1=url
            print("一共有"+str(cs)+"页,现在下载的是第1页。")
            sj=paqu(url1)
            data=BeautifulSoup(sj,"html.parser",from_encoding="gb18030")
            d=data.find_all('div',class_="content")
            d=str(d[0])
            findlink=(r' src="(.*?)"')
            link=re.findall(findlink,d)

        else:
            url1=url[:-5]+"_"+str(i)+".html"
            print("一共有"+str(cs)+"页,现在下载的是第"+str(i)+"页。")
            sj=paqu(url1)
            data=BeautifulSoup(sj,"html.parser",from_encoding="gb18030")
            d=data.find_all('div',class_="content")
            d=str(d[0])
            findlink=(r' src="(.*?)"')
            link=re.findall(findlink,d)

        for y in link:
            baocuntupian(y,wenjiandz)



#爬取网页数据
def paqu(url):
    header = {
                'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
            }
    try:
        urldate=requests.get(url,headers=header,timeout=12).content
        return urldate
    except:
        try:
            print("\n","*****************************************网络超时重新连接第1次*******************************************")
            urldate=requests.get(url,headers=header,timeout=12).content
            return urldate
        except:
            try:
                print("\n","*************************************网络超时重新连接第2次*******************************************")
                urldate=requests.get(url,headers=header,timeout=30).content
                return urldate
            except:
                print("\n","--------------------------------------网络连接失败请重新尝试--------------------------------------------------")
                # print(time.sleep(86400))
                pass
#保存图片
def baocuntupian(url,wenjiandizi):
    tupan = paqu(url)

    name=random.randint(0,10000000)
    print("正在下载......")
    file=open(wenjiandizi+"\\"+str(name)+".jpg","wb")
    file.write(tupan)                    
    file.close()






def main(dz,ks,js):
    kaishi=ks
    jieshu=js

    #获得总的网页,返回每个专辑的网页地址和专辑名称
    for i in range(kaishi,jieshu+1):
        url="https://www.tu963.cc/y/2/list_2_"
        list1=[]
        url=url+str(i)+".html"
        print(url)
        list1=zongwangzhi(url)

        for o in list1:
            find1=(r' href="(.*?)" target=')
            dizi_href=re.findall(find1,o)
            find2=(r'title="(.*?)">')
            dizi_title=re.findall(find2,o)
            # print(dizi_href[0],dizi_title[0])
            ys=yeshu(dizi_href[0])

            ml=dz+dizi_title[0]
            if not os.path.exists(ml):
                    print("\n","已经新建文件夹!")
                    os.mkdir(ml)
                    print("----------------------------------------------------------------------------")
                    zhuanjidiz(dizi_href[0],ys,ml)
            else:
                print("文件夹已经存在,不用爬取!")
                print("-----------------------------------------------------------")
    print("---------------完成----------------------------")


def denglu_windows():
    font_=("黑体",20)
    layout=[
            [sg.InputText("请选择要保存的路径......",font=font_,size=(30,1),key="-dizhi-"),sg.FolderBrowse("选择",font=font_)],
            [sg.T("开始网页:",font=font_),sg.In("1",enable_events=True,font=font_,key="-kaishi-",size=(3,1))],
            [sg.T("结束网页:",font=font_),sg.In("1",enable_events=True,font=font_,key="-jieshu-",size=(3,1))],
            [sg.T("页数进度:",font=font_),sg.ProgressBar( max_value=5,orientation="h",size=(47,20),key="-bar-")],
            [sg.T("专辑进度:",font=font_),sg.ProgressBar(5,orientation="h",size=(47,20),key="-bar2-")],
            [sg.T("图片进度:",font=font_),sg.ProgressBar(5,orientation="h",size=(47,20),key="-bar3-")],
            [sg.B("爬取",font=font_)],

            ]

    window=sg.Window("爬虫",layout)
    list1=[]
    while True:
        event,values=window.read()
        if event=="爬取":
            main(values["-dizhi-"]+"\\",int(values["-kaishi-"]),int(values["-jieshu-"]))
        if event==None:
            break
    window.close()

denglu_windows()

#大家将代码负责到编辑器中运行,如果报错就看看哪些库没有安装,将对应的库安装上就可以了。开始运行是要先选择文件保存的位置,然后选择要下载的页码,开始页码一定要大于等于1。
2022-05-24 09:50
sdg123
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2021-11-23
收藏
得分:0 
回复 3楼 Walter2021
已分享
2022-05-24 11:45
sdg123
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2021-11-23
收藏
得分:0 
回复 25楼 莫克
已放
2022-05-24 11:46
快速回复:写了个爬取美女网站套图的爬虫
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019764 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved