爬虫实例1-桌面壁纸

#引用bs4模块中的Beautiful soup工具
from bs4 import BeautifulSoup
#引用request模块                         
import requests
#引用os模块,保存获取的模块

import os

(源代码)

from bs4 import BeautifulSoup
import requests
import os

url = 'http://www.zhuoku.com/'
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36'}
url_get = requests.get(url,headers = header)
url_decode = url_get.content.decode("gb2312","ignore").encode("utf-8","ignore") #gb2312为网页编码
url_soup = BeautifulSoup(url_decode,'html.parser')
all_a = url_soup.find('div',id="zuixin").find_all('a',attrs={"class":"title"}) #此处attrs={"class":"title"}必须为大括号
for a in all_a:
    title = a.get_text().replace('/','') #取得<a>标签中的text
    href = a.get('href') #取得<a>标签中的href
    img_url = url + href[1:-4] + '(1).htm' #补全herf
    if os.path.isdir(os.path.join("D:\zhuoku",title)): #如果存在文件夹
        print('exist ' + title)
        pass #跳过
    else: #否则
        os.makedirs(os.path.join("D:\zhuoku",title)) #创建文件夹
        print('makedir ' + title)
    os.chdir("D:\zhuoku\\"+title) #切换到此文件夹
    img_url_get = requests.get(img_url,headers = header)
    img_url_soup = BeautifulSoup(img_url_get.text,'html.parser')
    max_img_page = img_url_soup.find('div',id="yema").find_all('a')[-1].get_text() #[-1]表示find_all('a')中的最后一个
    for page in range(1, int(max_img_page)+1):
        jpg_href = url + href[1:-4] + '(' + str(page) + ').htm' + '#turn' #jpg网址
        jpg_href_get = requests.get(jpg_href,headers = header)
        jpg_soup = BeautifulSoup(jpg_href_get.text,'html.parser')
        jpg_url = jpg_soup.find('div',id="bizhiimg").find('img')['src'] #jpg网址中的图片文件地址
        name = jpg_url[-9:] #截取图片文件地址的倒数第9位至末尾为图片的名字
        if os.path.isfile(name): #如果存在名为name的文件
            print(name + ' exist skip')
            pass #下面全跳过
        else: #否则
            jpg_header = {
                    'Referer':jpg_href,
                    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36'
                    }
            jpg = requests.get(jpg_url,headers = jpg_header) #requests返回jpg二进制文件
            f = open(name, 'ab')
            f.write(jpg.content)
            print(name + ' saved')
            f.close()
print('congratulations! all finished!')




#对要爬取的网站地址赋给变量url

url = 'http://www.zhuoku.com/'

#Headers是HTTP请求和相应的核心,它承载了关于客户端浏览器,请求页面,服务器等相关的信息

header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36'}

#requests模块,用它来获取网页的源代码。

url_get = requests.get(url,headers = header)

#解决获取网页源码的乱码问题,gb2312为网页编码

url_decode = url_get.content.decode("gb2312","ignore").encode("utf-8","ignore")

#Beautiful soup网页下载器BeautifulSoup模块是一个可以从网页上提取数据的Python库

url_soup = BeautifulSoup(url_decode,'html.parser')

all_a = url_soup.find('div',id="zuixin").find_all('a',attrs={"class":"title"})         #此处attrs={"class":"title"}必须为大括号
for a in all_a:
    title = a.get_text().replace('/','')                                                                  #取得<a>标签中的text
    href = a.get('href')                                                                                     #取得<a>标签中的href
    img_url = url + href[1:-4] + '(1).htm'                                                          #补全herf
    if os.path.isdir(os.path.join("D:\zhuoku",title)):                                         #如果存在文件夹
        print('exist ' + title)
        pass                                                                                                     #跳过
    else:                                                                                                         #否则
        os.makedirs(os.path.join("D:\zhuoku",title))                                         #创建文件夹
        print('makedir ' + title)
    os.chdir("D:\zhuoku\\"+title)                                                                     #切换到此文件夹
    img_url_get = requests.get(img_url,headers = header)
    img_url_soup = BeautifulSoup(img_url_get.text,'html.parser')
    max_img_page = img_url_soup.find('div',id="yema").find_all('a')[-1].get_text()         #[-1]表示find_all('a')中的最后一个
    for page in range(1, int(max_img_page)+1):
        jpg_href = url + href[1:-4] + '(' + str(page) + ').htm' + '#turn' #jpg网址
        jpg_href_get = requests.get(jpg_href,headers = header)
        jpg_soup = BeautifulSoup(jpg_href_get.text,'html.parser')
        jpg_url = jpg_soup.find('div',id="bizhiimg").find('img')['src'] #jpg网址中的图片文件地址
        name = jpg_url[-9:] #截取图片文件地址的倒数第9位至末尾为图片的名字
        if os.path.isfile(name): #如果存在名为name的文件
            print(name + ' exist skip')
            pass #下面全跳过
        else: #否则
            jpg_header = {
                    'Referer':jpg_href,
                    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36'
                    }
            jpg = requests.get(jpg_url,headers = jpg_header) #requests返回jpg二进制文件
            f = open(name, 'ab')
            f.write(jpg.content)
            print(name + ' saved')
            f.close()
print('congratulations! all finished!')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值