Python爬虫之旅_(数据解析)_正则
生活随笔
收集整理的這篇文章主要介紹了
Python爬虫之旅_(数据解析)_正则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言:
正則表達式有時在寫腳本很方便,記錄一下自己的學習過程!
正則練習
import re # key = 'shy lemon' #輸出lemon # test = re.findall('lemon',key)[0] # print(test) # lemon# 利用正則提取出整個內容 # key = "hello world" # test = re.findall('(.*)',key)[0] # print(test) # hello world# 提取出數字 # 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)用正則爬取圖片
這次就來通過爬取糗圖百科的糗圖來練習正則表達式
先進行分析
觀察到圖片鏈接都是在這個<div class="thumb">下面的,所以范圍就確定了,復制下來
那下面就沒有什么可以分析的了,直接寫腳本:
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'}#創建一個文件夾,保存圖片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#獲取響應的二進制數據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,'下載成功!')
雖說爬取成功了,但是我們爬取的只是一頁,如果是多頁的話還需要進一步處理,分析一下第二頁和第三頁的url有什么區別
發現只是數字在變化,那只要我們將url自動變化,這樣不就可以請求到多頁了,腳本如下:
爬取成功
總結
以上是生活随笔為你收集整理的Python爬虫之旅_(数据解析)_正则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos MySql基础
- 下一篇: Python爬虫之旅_高性能异步爬虫