五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

python百行代碼實現(xiàn)漢服圈圖片爬取

發(fā)布日期:2021-12-11 15:29 | 文章來源:源碼之家

平時旅游的時候,在旅游景區(qū)我們經(jīng)??梢钥吹酱└鞣N服飾去拍照的游客,也不會刻意多關注。前兩天瀏覽網(wǎng)頁無意看到一個網(wǎng)站,看到穿漢服的女孩是真的很好看。無論是工作需要還是創(chuàng)作文案,把這么漂亮的圖片來當作素材都是一個很好的idea。有需要,我們就爬它,爬它,爬它!

話不多說,我們下面詳細介紹圖片爬取。

分析網(wǎng)站

網(wǎng)址如下:

https://www.aihanfu.com/zixun/tushang-1/

這是第一頁的網(wǎng)址,根據(jù)觀察,第二頁網(wǎng)址也就是上述網(wǎng)站序號1變成了2,依次類推,就可以訪問全部頁數(shù)。

根據(jù)圖示,我們需要獲得每個子網(wǎng)站的鏈接,也就是href中網(wǎng)址,然后進入每個網(wǎng)址,尋找圖片網(wǎng)址,在下載就行了。

子鏈接獲取

為了獲取上圖中的數(shù)據(jù),我們可以用soup或者re或者xpath等方法都可以,本文中小編使用xpath來定位,編寫定位函數(shù),獲得每個子網(wǎng)站鏈接,然后返回主函數(shù),這里使用了一個技巧,在for循環(huán)中,可以看看!

def get_menu(url, heades):
 """
 根據(jù)每一頁的網(wǎng)址
 獲得每個鏈接對應的子網(wǎng)址
 params: url 網(wǎng)址
 """
 r = requests.get(url, headers=headers)
 if r.status_code == 200:
  r.encoding = r.apparent_encoding
  html = etree.HTML(r.text)
  html = etree.tostring(html)
  html = etree.fromstring(html)
  # 查找每個子網(wǎng)址對應的鏈接, 然后返回
  children_url = html.xpath('//div[@class="news_list"]//article/figure/a/@href')
  for _ in children_url:
yield _

獲取標題和圖片地址

為了盡量多的采集數(shù)據(jù),我們把標簽和圖片地址采集一下,當然如果其他項目需要采集發(fā)布者和時間,也是可以做到多的,本篇就不再展開。

我們點開一個網(wǎng)址鏈接,如上圖所示,可以發(fā)現(xiàn)標題在head的節(jié)點里面,獲取標題是為創(chuàng)建文件夾時使用。

代碼如下:

def get_page(url, headers):
 """
 根據(jù)子頁鏈接,獲得圖片地址,然后打包下載
 params: url 子網(wǎng)址
 """
 r = requests.get(url, headers=headers)
 if r.status_code == 200:
  r.encoding = r.apparent_encoding
  html = etree.HTML(r.text)
  html = etree.tostring(html)
  html = etree.fromstring(html)
  # 獲得標題
  title = html.xpath(r'//*[@id="main_article"]/header/h1/text()')
  # 獲得圖片地址
  img = html.xpath(r'//div[@class="arc_body"]//figure/img/@src')
  # title 預處理 
  title = ''.join(title)
  title = re.sub(r'【|】', '', title)
  print(title)
  save_img(title, img, headers)

保存圖片

在翻轉每一頁時我們都需要把子鏈接對應的圖片保存下來,此處需要注意對請求的狀態(tài)判斷、路徑判斷。

def save_img(title, img, headers):
 """
 根據(jù)標題創(chuàng)建子文件夾
 下載所有的img鏈接,選擇更改質量大小
 params:title : 標題
 params:  img :  圖片地址
 """
 if not os.path.exists(title):
  os.mkdir(title)
 # 下載
 for i, j in enumerate(img):  # 遍歷該網(wǎng)址列表
  r = requests.get(j, headers=headers)
  if r.status_code == 200:
with open(title + '//' + str(i) + '.png', 'wb') as fw:
 fw.write(r.content)
  print(title, '中的第', str(i), '張下載完成!')

主函數(shù)

if __name__ == '__main__':
 """ 
 一頁一頁查找
 params : None
 """
 path = '/Users/********/漢服/'
 if not os.path.exists(path):
  os.mkdir(path)
  os.chdir(path)
 else:
  os.chdir(path)
 # url = 'http://www.aihanfu.com/zixun/tushang-1/'
 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
 ' AppleWebKit/537.36 (KHTML, like Gecko)'
 ' Chrome/81.0.4044.129 Safari/537.36'}
 for _ in range(1, 50):
  url = 'http://www.aihanfu.com/zixun/tushang-{}/'.format(_)
  for _ in get_menu(url, headers):
get_page(_, headers)  # 獲得一頁

至此我們已經(jīng)完成了所有環(huán)節(jié),關于爬蟲的文章,小編已經(jīng)不止一次的介紹了,一方面是希望大家可以多多熟悉爬蟲技巧,另外一方面小編認為爬蟲是數(shù)據(jù)分析、數(shù)據(jù)挖掘的基礎。沒有爬蟲獲取數(shù)據(jù),何來數(shù)據(jù)分析。

以上就是python百行代碼實現(xiàn)漢服圈圖片爬取的詳細內容,更多關于python爬取漢服圈圖片的資料請關注本站其它相關文章!

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部