<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          4K美女壁紙爬取

          共 3376字,需瀏覽 7分鐘

           ·

          2022-06-13 20:12

          4K美女壁紙爬取

          一、前言

          拍了zhenguo的課程,今天繼續(xù)學(xué)習(xí)課程同時(shí),嘗試使用BeautifulSoup4這個(gè)網(wǎng)頁解析的方法爬取圖片,看完后心血來潮,想自己也試一下。

          爬完后并總結(jié)這篇投稿給zhenguo,獎(jiǎng)勵(lì)我50元稿費(fèi),很開心。

          最先想到的是彼岸圖網(wǎng),這個(gè)網(wǎng)站上有很多4k壁紙,打開網(wǎng)頁后,我選擇了4k美女壁紙作為本次爬蟲的目標(biāo),爬取到的圖片截圖如下:


          二、過程

          1.首先,我們拿到前三頁的網(wǎng)頁地址。

          2.通過分析可以看出,當(dāng)頁面變化時(shí),index后面會(huì)發(fā)生改變,但在第一頁時(shí)并沒有數(shù)字顯示,所以做出以下操作,通過input獲取我們想要爬取的頁數(shù),使用if語句對(duì)index進(jìn)行賦值,再傳入要爬取的網(wǎng)址中。

          3.接下來就是獲取網(wǎng)頁源代碼了,使用requests.get拿到網(wǎng)頁源代碼,在打印時(shí)發(fā)現(xiàn)出現(xiàn)了亂碼,根據(jù)網(wǎng)頁源代碼里的提示,規(guī)定格式為'gbk',再獲取bs對(duì)象main_page,指定解析器為'lxml'。

          4.在網(wǎng)頁源代碼中分析得知,需要的內(nèi)容在標(biāo)簽div class='slist'的標(biāo)簽中,每一個(gè)li標(biāo)簽下的a標(biāo)簽包含了要爬取的每張圖片的所有信息,所以使用find('div',class_='slist')先定位主標(biāo)簽,再使用find_all('a')定位每一個(gè)子標(biāo)簽。接著使用for循環(huán),遍歷每一個(gè)a標(biāo)簽下的內(nèi)容,使用get('href')拿到該圖片的url,再使用切片的方法,提出圖片的數(shù)字編號(hào),傳入下載地址,就得到了每一個(gè)圖片的下載地址。注意:這里的下載地址是通過抓包獲取,在子頁面的網(wǎng)頁源代碼中是找不到的。

          5.有了下載地址,使用requests模塊獲取響應(yīng)。這里要注意,該網(wǎng)站要登錄后才能進(jìn)行下載,所以我們要在請(qǐng)求頭里傳入cookie參數(shù)。獲取響應(yīng)后我們就要寫入文件保存起來。

          三、完整源碼

          import requests
          from bs4 import BeautifulSoup
          import time
          '''
          第一頁 https://pic.netbian.com/4kmeinv/index.html
          第二頁 https://pic.netbian.com/4kmeinv/index_2.html
          第三頁 https://pic.netbian.com/4kmeinv/index_3.html
          '''

          headers = {
              'cookie''__yjs_duid=1_609256ccf97c86f63356e4e9f3fa5eb21654735480955; Hm_lvt_c59f2e992a863c2744e1ba985abaea6c=1654735481; zkhanecookieclassrecord=%2C65%2C59%2C66%2C54%2C53%2C55%2C; PHPSESSID=25p1pnl1nog1nn56lic0j2fga6; zkhanmlusername=qq803835154342; zkhanmluserid=826128; zkhanmlgroupid=3; zkhanmlrnd=VQOfLNvHK33WGXiln7nY; zkhanmlauth=264643c01db497a277bbf935b54aa3f3; Hm_lpvt_c59f2e992a863c2744e1ba985abaea6c=1654741154'
          }
          page = int(input('請(qǐng)輸入要爬取的頁數(shù):'))
          for i in range(page):
              if i == 0:
                  index = 'index'
              else:
                  index = f'index_{i+1}'
              theme_url = f'https://pic.netbian.com/4kmeinv/{index}.html' # 要爬取主題的url
              response = requests.get(theme_url)
              response.encoding = 'gbk'
              main_page = BeautifulSoup(response.text,features="lxml")
              li_all_a = main_page.find('div',class_='slist').find_all('a'# li標(biāo)簽下所有的a標(biāo)簽
              for a in li_all_a:
                  href = a.get('href')
                  picture_num = href[8:13]
                  picture_name = a.find('b').string
                  down_url = f'https://pic.netbian.com/downpic.php?id={picture_num}&classid=54' # 子頁面中的下載地址
                  down_response = requests.get(down_url,headers=headers)
                  with open(f'4k美女圖片/'+picture_name+'.jpg',mode='wb'as f:
                      f.write(down_response.content) # 圖片內(nèi)容寫入文件
                  print('正在保存',picture_name+'.jpg')
                  time.sleep(1)
              response.close()
          print('程序運(yùn)行完畢')

          四、結(jié)尾

          以上是爬取4k美女壁紙的簡(jiǎn)單案例,有興趣的小伙伴可以對(duì)比一下其他主題壁紙,參數(shù)稍作修改即可下載其他主題壁紙了。

          瀏覽 276
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品久久77777 | 操X操X | 日无码视频 | 99超碰在线看 | 日韩免费的黄色视频 |