Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 免费日韩视频,欧美一区二区在线观看视频,国产一进一出视频网站

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          手把手教你爬取天堂網(wǎng)1920*1080大圖片(批量下載)-理論篇

          1 前言/

          平時(shí)我們要下載圖片,要要一個(gè)一個(gè)點(diǎn)擊下載是不是覺得很麻煩?那有沒有更加簡(jiǎn)便的方法呢?答案是肯定的,這里我們以天堂網(wǎng)為例,批量下載天堂網(wǎng)的圖片。

          /2 項(xiàng)目準(zhǔn)備工作/

          首先 我們第一步我們要安裝一個(gè)pycham的軟件。可以參考這篇文章:Python環(huán)境搭建—安利Python小白的Python和Pycharm安裝詳細(xì)教程。

          天堂網(wǎng)的網(wǎng)址:

          https://www.ivsky.com/bizhi/1920x1080/

          我們需要下載幾個(gè)庫(kù),怎么下載呢?打開pycharm,依次點(diǎn)擊File,再點(diǎn)開Settings,如下圖所示。

          打開后會(huì)出現(xiàn)這個(gè)界面點(diǎn)擊你的項(xiàng)目名字(project:(你的項(xiàng)目名字)),之后在project interpreter下,點(diǎn)擊加號(hào),而后下載我們需要的庫(kù),如下圖所示。

          本項(xiàng)目需要用到的是庫(kù)是requests、lxml、fake_useragent,如下圖所示。fake_useragent一般是沒有的,需要通過下面的命令進(jìn)行安裝:

          pip install fake_useragent

          /3 項(xiàng)目實(shí)現(xiàn)/

          1、導(dǎo)入需要的庫(kù)(requests,lxml, fake_useragent)。

          2、我用了封裝方法去實(shí)現(xiàn)各個(gè)部分的功能。首先要寫一個(gè)框架:構(gòu)造一個(gè)類TianTangWebsite ,然后定義一個(gè)init方法里繼承(self),再定義一個(gè)主方法(main)。最后實(shí)現(xiàn)這個(gè)main方法,依次一步一步進(jìn)行實(shí)現(xiàn)。

          3、我們把天堂網(wǎng)的網(wǎng)址拿過來,構(gòu)造請(qǐng)求頭。這里說一下這個(gè)UserAgent的獲取方法。在打開天堂網(wǎng)的網(wǎng)站后,按下鍵盤上的F12鍵,之后會(huì)進(jìn)入到開發(fā)者模式,之后點(diǎn)開network,如下圖所示。

          4、而后隨便點(diǎn)擊一個(gè)name,復(fù)制header里邊的UserAgent就可以了。

          5、我們點(diǎn)擊下一頁(yè)的地址觀察網(wǎng)址的變化,如下所示:

          https://www.ivsky.com/bizhi/1920x1080/index_2.html
          https://www.ivsky.com/bizhi/1920x1080/index_3.html
          https://www.ivsky.com/bizhi/1920x1080/index_4.html

          很明顯的發(fā)現(xiàn),這個(gè)網(wǎng)址的網(wǎng)頁(yè)數(shù)字一直在變化。我們可以用格式化{}去代替變化的值,類似這樣:

          https://www.ivsky.com/bizhi/1920x1080/index_{}.html

          6、然后我們用for循環(huán)去遍歷這些網(wǎng)址,代碼如下所示:

          def main(self):
              for i in range(1,2):#頁(yè)數(shù)隨機(jī)客戶隨便 設(shè)置
                url=self.url.format(i)
                print(url)

          7、我們定義這個(gè)get_home()方法去請(qǐng)求到這個(gè)網(wǎng)址。

          9、我們需要解析得到的數(shù)據(jù),接下來定義一個(gè)xiap的方法,拿到我們請(qǐng)求的網(wǎng)址。接下來就是該項(xiàng)目的關(guān)鍵了。

          10、至此,針對(duì)反爬蟲的措施我們已經(jīng)提前做好了準(zhǔn)備,下一步將進(jìn)行網(wǎng)頁(yè)結(jié)構(gòu)的分析以及網(wǎng)頁(yè)圖片地址數(shù)據(jù)的提取,并針對(duì)解析出來的圖片地址予以批量下載,具體實(shí)現(xiàn)咱們下篇文章進(jìn)行詳解。

          /4 小結(jié)/

          本文主要內(nèi)容為對(duì)圖片網(wǎng)站進(jìn)行了基本簡(jiǎn)介,基于 Python 中的爬蟲庫(kù) requestslxmlfake_useragent,提前部署了請(qǐng)求頭,模擬瀏覽器,針對(duì)反爬蟲的措施我們已經(jīng)提前做好了準(zhǔn)備。

          下篇文章將帶大家進(jìn)行網(wǎng)頁(yè)結(jié)構(gòu)的分析以及網(wǎng)頁(yè)圖片地址數(shù)據(jù)的提取,并針對(duì)解析出來的圖片地址予以批量下載,敬請(qǐng)期待~~

          往期精彩文章推薦:

          • 手把手用Python教你如何發(fā)現(xiàn)隱藏wifi
          • 手把手教你用Python做個(gè)可視化的“剪刀石頭布”小游戲
          • 手把手教你使用Python批量創(chuàng)建復(fù)工證明

          想學(xué)習(xí)更多Python網(wǎng)絡(luò)爬蟲與數(shù)據(jù)挖掘知識(shí),可前往專業(yè)網(wǎng)站:http://pdcfighting.com/

          代碼演示通過python的requests,BeautifulSoup庫(kù)批量下載360圖片,并保存在本機(jī)的路徑

          代碼如下:

          #BeautifulSoup庫(kù)是網(wǎng)頁(yè)爬蟲解析庫(kù),主要用來對(duì)HTML源代碼進(jìn)行解析,方便顯示并讀取相應(yīng)的標(biāo)簽數(shù)據(jù)
          #1、首先導(dǎo)入相應(yīng)的庫(kù)
          import requests
          from bs4 import BeautifulSoup
          import random
          import os
          import time
          #2、對(duì)網(wǎng)站進(jìn)行g(shù)et請(qǐng)求
          def gethtml(kward):
           try:
           url="https://image.so.com" #設(shè)置360網(wǎng)站的搜索頁(yè)面的前面部分網(wǎng)址
           kw={"q":kward} #設(shè)置關(guān)鍵字變量kw
           headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"} # 設(shè)置網(wǎng)頁(yè)請(qǐng)求頭
           response = requests.get(url, params=kw,headers=headers) ##偽裝瀏覽器對(duì)url進(jìn)行g(shù)et請(qǐng)求,傳遞的參數(shù)是kw
           response.encoding=response.apparent_encoding #根據(jù)網(wǎng)頁(yè)內(nèi)容解析出編碼格式并賦值給response.encoding
           html=response.text #將網(wǎng)頁(yè)源代碼賦值給html
           soup=BeautifulSoup(html,'html.parser') #使用html.parser對(duì)html代碼進(jìn)行解析,并賦值給soup變量
           print(soup.head) #打印網(wǎng)頁(yè)源代碼的頭部信息
           images=soup.find_all('img') #查找源代碼里所有的圖片標(biāo)簽
           path="F://明星照片//"+kward+"http://" #設(shè)置圖片的存儲(chǔ)本機(jī)的路徑
           for img in images: #遍歷所有的img標(biāo)簽信息
           print(img.attrs["src"]) #打印遍歷出來的圖片表情的src屬性值
           url1=img.attrs["src"] #設(shè)置url1為遍歷出來的圖片表情的src屬性值
           response1=requests.get(url=url1,headers=headers)
           #上行代碼偽裝瀏覽器對(duì)url1,即圖片網(wǎng)站進(jìn)行g(shù)et請(qǐng)求并將請(qǐng)求結(jié)果賦值給response1
           response1.encoding=response1.apparent_encoding #根據(jù)網(wǎng)頁(yè)內(nèi)容解析出編碼格式并賦值給response1.encoding
           html1=response1.content #將圖片網(wǎng)址的二進(jìn)制源代碼賦值給html1
           abspath=path+str(random.random())+".jpg" #設(shè)置存儲(chǔ)路勁為abspath
           with open(abspath,"wb") as f: #打開文件的絕對(duì)路徑,并對(duì)文件進(jìn)行寫入操作,并設(shè)置為f
           f.write(html1) #將源代碼寫入f文件
           f.close() #關(guān)閉f文件
           print(img.attrs["src"]+"下載成功") #打印下載成功的提示
           time.sleep(0.2) #設(shè)置時(shí)間休眠0.2秒
           except: #如果接受錯(cuò)誤時(shí)
           print("爬取失敗") #打印爬取失敗
          

          代碼運(yùn)行結(jié)果如下圖所示:

          、要求:

          ①使用Python的tkinter創(chuàng)建一個(gè)下載器

          ②下載器需要包含圖片類型輸入框和圖片存儲(chǔ)路徑輸入框

          ③必須要有下載按鈕和清空按鈕,并執(zhí)行相應(yīng)的下載圖片和清空輸入信息的操作

          二、代碼如下:

          import tkinter
          import tkinter as tk
          import requests
          import time
          from lxml import etree
          import os
          import re
          root=tk.Tk()
          root.geometry('800x600')
          root.title('下載https://www.16pic.com/圖片')
          l1=tk.Label(root,text='1、請(qǐng)輸入圖片類型:')
          l1.place(x=30,y=10)
          v1=tk.StringVar()
          e1=tk.Entry(root,textvariable=v1,width=50)
          e1.place(x=180,y=10)
          l2=tk.Label(root,text='2、請(qǐng)輸入圖片存儲(chǔ)路徑:')
          l2.place(x=30,y=30)
          v2=tk.StringVar()
          
          e2=tk.Entry(root,textvariable=v2,width=50)
          e2.place(x=180,y=30)
          e2.insert('end','F:\images')
          e3=tk.Text(root,width=200,height=100)
          e3.place(x=30,y=100)
          global headers
          headers={"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.3"}
          def download(url,path):
              response2=requests.get(url=url,headers=headers)
              content=response2.content
              i=1
              today=time.localtime()
              filename=str(today)+str(i)+'.jpg'
              with open(os.path.join(path,filename),'wb') as f:
                  f.write(content)
                  print("{}下載完成".format(url))
          def submit():
              kw=e1.get()
              url='https://www.16pic.com/sucai/tupian_{}_0-0-0-0-0-0-0-0-0_1.html'.format(kw)
              response=requests.get(url=url,headers=headers)
              response.encoding='utf-8'
              text=response.text
              img_list=re.findall(r'<img src="(.*?)"',text)
              for image in img_list:
                  image=image.split('?')
                  image=image[0]
                  if '.jpg' in image:
                      image_result='http:'+image
                      # print(image_result)
                      download(image_result, v2.get())
                      e3.insert('end', image_result+"下載完成")
                      e3.insert('end','\n')
          submit_button=tk.Button(root,text='開始下載',command=submit)
          submit_button.place(x=30,y=60)
          def clear():
              v1.set('')
              v2.set('')
              e3.delete(1.0,tkinter.END)
          clear_button=tk.Button(root,text='清空',command=clear)
          clear_button.place(x=200,y=60)
          root.mainloop()
          

          三、使用Pyinstaller命令生成可執(zhí)行文件運(yùn)行結(jié)果如下圖所示:

          四、代碼運(yùn)行結(jié)果如下圖所示:


          主站蜘蛛池模板: 免费无码一区二区三区蜜桃大 | 人妻夜夜爽天天爽爽一区| 91福利国产在线观一区二区| 国产一区二区三区小说| 亚洲国产美国国产综合一区二区| 一区二区中文字幕在线观看| 国产乱人伦精品一区二区在线观看| 亚洲AV午夜福利精品一区二区| 国产精品成人一区二区| 国产精品电影一区二区三区| 无码丰满熟妇一区二区| 国产精品亚洲午夜一区二区三区| 日本不卡一区二区视频a| 2014AV天堂无码一区| 国产成人高清精品一区二区三区| 国产MD视频一区二区三区| 国产三级一区二区三区 | 国产一区视频在线| 精品久久久久中文字幕一区| 欧洲精品码一区二区三区免费看 | 午夜天堂一区人妻| 无码精品人妻一区二区三区免费看 | 无码8090精品久久一区| 日韩精品无码Av一区二区| 美女视频黄a视频全免费网站一区| 免费无码一区二区三区蜜桃大| 美日韩一区二区三区| 夜夜高潮夜夜爽夜夜爱爱一区| 成人精品一区二区电影| 大香伊蕉日本一区二区| 免费在线视频一区| 亚洲成a人一区二区三区| 国产在线视频一区| 无码国产精品一区二区免费3p| 91一区二区三区四区五区| 亚洲大尺度无码无码专线一区 | 亚洲av乱码一区二区三区| 亚洲精品日韩一区二区小说| 日韩在线一区高清在线| 日韩精品一区二区三区影院| 熟女少妇精品一区二区|