日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Python爬虫之旅_(数据解析)_正则

發(fā)布時(shí)間:2024/9/30 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬虫之旅_(数据解析)_正则 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:
正則表達(dá)式有時(shí)在寫腳本很方便,記錄一下自己的學(xué)習(xí)過程!

正則練習(xí)

import re # key = 'shy lemon' #輸出lemon # test = re.findall('lemon',key)[0] # print(test) # lemon# 利用正則提取出整個(gè)內(nèi)容 # key = "hello world" # test = re.findall('(.*)',key)[0] # print(test) # hello world# 提取出數(shù)字 # string = '高190' # test = re.findall('\d+',string)[0] # print(test) # 190#提取出shy. # key='lemon@shy.edu.com' # test = re.findall('s.*?\.',key)[0] # print(test)#匹配sas和saas key='saas and sas and saaas' test = re.findall('sa{1,2}',key) print(test)

用正則爬取圖片

這次就來通過爬取糗圖百科的糗圖來練習(xí)正則表達(dá)式

先進(jìn)行分析

觀察到圖片鏈接都是在這個(gè)<div class="thumb">下面的,所以范圍就確定了,復(fù)制下來

<div class="thumb"><a href="/article/123149666" target="_blank"> <img src="//pic.qiushibaike.com/system/pictures/12314/123149666/medium/6SOFQC0SLNI8BBU3.jpg" alt="糗事#123149666" class="illustration" width="100%" height="auto"> </a> </div> 寫出匹配的正則表達(dá)式 ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'

那下面就沒有什么可以分析的了,直接寫腳本:

import re import requests import os if __name__ == '__main__':url = 'https://www.qiushibaike.com/imgrank/'headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}#創(chuàng)建一個(gè)文件夾,保存圖片if not os.path.exists('./img'):os.mkdir('./img')page_text = requests.get(url=url,headers=headers).text#使用正則ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'img_src_list = re.findall(ex,page_text,re.S)# print(img_src_list)for src in img_src_list:#拼接圖片地址src = 'https:'+src#獲取響應(yīng)的二進(jìn)制數(shù)據(jù)img_data =requests.get(url=src,headers=headers).content#生成圖片名稱img_name = src.split('/')[-1]img_path = './img/'+img_namewith open(img_path,'wb') as fp:fp.write(img_data)print(img_name,'下載成功!')


雖說爬取成功了,但是我們爬取的只是一頁,如果是多頁的話還需要進(jìn)一步處理,分析一下第二頁和第三頁的url有什么區(qū)別

發(fā)現(xiàn)只是數(shù)字在變化,那只要我們將url自動(dòng)變化,這樣不就可以請(qǐng)求到多頁了,腳本如下:

import re import requests import os if __name__ == '__main__':#設(shè)置一個(gè)通用的url模板url = 'https://www.qiushibaike.com/imgrank/page/%d'# page_num = 1headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}#創(chuàng)建一個(gè)文件夾,保存圖片if not os.path.exists('./img'):os.mkdir('./img')for page_num in range(1,5):#對(duì)應(yīng)頁碼的urlnew_url = format(url%page_num)page_text = requests.get(url=new_url,headers=headers).text#使用正則ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'img_src_list = re.findall(ex,page_text,re.S)# print(img_src_list)for src in img_src_list:#拼接圖片地址src = 'https:'+src#獲取響應(yīng)的二進(jìn)制數(shù)據(jù)img_data =requests.get(url=src,headers=headers).content#生成圖片名稱img_name = src.split('/')[-1]img_path = './img/'+img_namewith open(img_path,'wb') as fp:fp.write(img_data)print(img_name,'下載成功!')


爬取成功

總結(jié)

以上是生活随笔為你收集整理的Python爬虫之旅_(数据解析)_正则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。