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

歡迎訪問 生活随笔!

生活随笔

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

python

第一只python小爬虫

發布時間:2023/12/3 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第一只python小爬虫 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

互聯網就像一張無形的蜘蛛網,網站就相當于在這張網的交叉結點。而網絡爬蟲就是這張網上的蜘蛛,它是一種程序,能夠利用url鏈接在各網站之間自動穿梭并抓取所需數據。

學了python的正則表達式之后,我便迫不及待的想要找個應用玩一下,而網絡爬蟲就是個不二的選擇。下面記錄一下我寫的第一只小爬蟲,用來自動下載網頁上的圖片。

(操作環境:32位Win8系統,運行工具:python2.7.9+Eclipse.)


正文:

1、首先,每個網站都有一個URL地址,通過這個URL可以進入各個相應的網站。我們在瀏覽網頁 點擊進入其他網頁的時候,其實就是打開其他網頁的跳轉鏈接URL。我們所看到的每個網頁“背后”都有著很多其他網頁的跳轉鏈接,我們只需鼠標右鍵打開網頁源代碼即可查看到。

2、首先,我們用到的是python的urllib模塊。其中有幾個方法是比較重要的:

url.urlopen(url,data=None,proxies=None,context=None) ?根據URL打開網頁,返回一個句柄

url.urlopen()的對象有個方法:read() ?用于讀取網頁源代碼

url.urlretrieve(url,filename=None,reporthook=None,data=None,context=None) ?用于從網頁上下載數據到本地


我們首先用urlopen()打開一個網頁,獲得一個句柄;然后用句柄.read()獲取網頁源代碼;再用正則表達式從網頁源代碼中找出各個圖片的URL;最后用urlretrieve(URL,'XXX.jpg')下載圖片。

代碼如下:

import re import urllibdef getHtml(url):page = urllib.urlopen(url)html1 = page.read()return html1def getImg(html1):reg = 'src="(http://img.{,110}?\.jpg)"'imglist = re.findall(reg,html1)urllib.urlretrieve(imglist[1],'1.jpg')str2 = raw_input('Please input URL:') html1 = getHtml(str2) getImg(html1) print 'Finish!' 示例網頁:http://mm.taobao.com/689744369.htm

以上代碼只下載了一張圖片,但網頁上所有圖片的URL都已經找到 放在imglist里面,我們只要加上個循環就可以下載全部圖片了。


代碼很簡單,主要是要獲取到圖片的URL。而圖片URL的獲取 是從網頁源代碼上用正則表達式匹配出來的。

每一個網頁對應的源代碼格式都會有點差異,所以我們從不同網頁上下載圖片,最重要的就是查看網頁源代碼,分析圖片URL的位置,然后編寫恰當的正則表達式把圖片URL拿下來。


分享兩個視頻教程,一個是智普教育的淘女郎圖片爬蟲(http://pan.baidu.com/s/1ntj2AX7),另一個是中谷教育的小爬蟲教學視頻(http://pan.baidu.com/s/1nt63lR7)

我最初看的是中谷教學視頻,初識網絡小爬蟲。后來看到智普的視頻,最大的收獲就是不小心知道了淘女郎的網址(http://mm.taobao.com/689744369.htm)里面一大片MM的照片,正愁沒個好網址來練手呢。然后智普在獲取圖片URL的時候用的是切片,這也是一種方法,但相對于正則表達式而言就顯得太繁雜了。


總結:

感覺這個小爬蟲挺好玩的,就是現在下載來的圖片沒什么用,下完了看兩眼就都刪了。在知乎、博客里面搜了python爬蟲的相關資料,其實我這個小爬蟲也太小了,根本微不足道,只是下載幾張圖片而已。爬蟲的真正應用是在搜索引擎和爬一些供數據挖掘的源數據,稍微大只一點的爬蟲應該是運行在分布式機器上的,而且能夠熟練、有效地在各個網頁中穿梭、抓取數據。任重道遠,繼續努力!


以下是我抓取整一個頁面10個淘女郎的圖片(將近兩千張),首先獲取10個淘女郎的主頁鏈接,進入各個淘女郎的主頁,然后再獲取圖片的URL進行下載:

import re import urllib global a a = 1def getHtml(url):page = urllib.urlopen(url)html1 = page.read()return html1def getImg(html1):global areg = 'src="(http://img.{,110}?\.jpg)"'imgre = re.compile(reg)imglist = imgre.findall(html1)for imgurl in imglist:urllib.urlretrieve(imgurl,'%d.jpg'%a)print a,imgurla += 1strMain = raw_input('Please input URL:') htmlMain = getHtml(strMain) regMain = 'a href="(http://mm.taobao.com/\d+?\.htm)' urlSon = re.compile(regMain) htmlList = urlSon.findall(htmlMain) for html in htmlList:html0 = getHtml(html)getImg(html0)print 'Finish!'示例網頁:http://mm.taobao.com/json/request_top_list.htm?type=0&page=8

轉載請注明出處,謝謝!(原文鏈接:http://blog.csdn.net/bone_ace/article/details/44598527)

總結

以上是生活随笔為你收集整理的第一只python小爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。

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