日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 爬虫小程序(正则表达式的应用)

發布時間:2023/12/15 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 爬虫小程序(正则表达式的应用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目標:通過正則表達式寫一個爬蟲程序,抓下網頁的所有圖片。思路1. ?獲取網頁源代碼2. ?獲取圖片

3. ?下載圖片


第一步,打開URL 獲取源代碼[root@node1 python]# mkdir p_w_picpath [root@node1 python]# cd p_w_picpath [root@node1 python]# vim getHtml.py #!/usr/bin/python import re import urllibdef getHtml(url):html = urllib.urlopen(url)scode = html.read()return scodeprint getHtml('http://tieba.baidu.com/p/1762577651')


第二步,獲取圖片相關地址(正則匹配)

從取回的源代碼中分析圖片相關URL 的構造,然后通過正則表達式將圖片地址提取出來源文件中圖片的標簽是這樣子的:

<img class="BDE_Image" src="http://imgsrc.baidu.com/forum/w%3D580/sign=2e8f3ca53af33a879e6d0012f65d1018/4ece3bc 79f3df8dc2ab63004cd11728b46102899.jpg" width="560" height="400" changedsize="true">


要獲取的是http://imgsrc.baidu.com/xxxxxxx.jpg

#!/usr/bin/python import re import urllibdef getHtml(url):html = urllib.urlopen(url)scode = html.read()return scodedef getImage(source):re = r'src="(.*?\.jpg)" width='imgre = re.compile(re)p_w_picpaths = re.findall(imgre,source)return p_w_picpathssource = getHtml('http://tieba.baidu.com/p/1762577651') print getImage(source)


第三步,下載獲取到的圖片上一步已經將取到的圖片地址存放在一個列表中了,現在只有對這個列表做一個遍歷即可#!/usr/bin/python import re import urllibdef getHtml(url):html = urllib.urlopen(url)scode = html.read()return scodedef getImage(source):re = r'src="(.*?\.jpg)" width='imgre = re.compile(re)p_w_picpaths = re.findall(imgre,source)for i in p_w_picpaths:urllib.urlretrieve(i,'1.jpg')source = getHtml('http://tieba.baidu.com/p/1762577651') print getImage(source)


但是這樣會有一個問題,就是每個圖片保存下來后都會被命名為1.jpg ,換句話說就是后面的圖片會覆蓋前面的圖片,所以只能保存到一個圖片。因此還需要一步,對圖片進行命名#!/usr/bin/python import re import urllibdef getHtml(url):html = urllib.urlopen(url)scode = html.read()return scodedef getImage(source):re = r'src="(.*?\.jpg)" width='imgre = re.compile(re)p_w_picpaths = re.findall(imgre,source)x = 0for i in p_w_picpaths:urllib.urlretrieve(i,'%s.jpg' % x)x+=1source = getHtml('http://tieba.baidu.com/p/1762577651') print getImage(source)


執行結果:[root@node1 p_w_picpath]# python getHtml.py [root@node1 p_w_picpath]# ls 11.jpg 13.jpg 15.jpg 17.jpg 19.jpg 20.jpg 3.jpg 5.jpg 7.jpg 9.jpg 10.jpg 12.jpg 14.jpg 16.jpg 18.jpg 1.jpg 2.jpg 4.jpg 6.jpg 8.jpg getHtml.py


轉載于:https://blog.51cto.com/pmghong/1334086

總結

以上是生活随笔為你收集整理的Python 爬虫小程序(正则表达式的应用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。