摘要:在近幾年迅速咋程序界掀起了不小的波瀾,而關(guān)于的第三庫也使廣大程序員趨之若鶩,今天我們就由淺入深的探討一下如何使用做一個網(wǎng)絡(luò)爬蟲來抓取一些頁面信息。
Python在近幾年迅速咋程序界掀起了不小的波瀾,而關(guān)于python的第三庫也使廣大程序員趨之若鶩,今天我們就由淺入深的探討一下如何使用python做一個“網(wǎng)絡(luò)爬蟲”來抓取一些頁面信息。今天我們使用的庫(包含python自身攜帶的庫和第三庫)
Python簡介Python(英國發(fā)音:/?pa?θ?n/ 美國發(fā)音:/?pa?θɑ?n/), 是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,由荷蘭人Guido van Rossum于1989年發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。
Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議[2] 。Python語法簡潔清晰,特色之一是強(qiáng)制用空白符(white space)作為語句縮進(jìn)。
Python具有豐富和強(qiáng)大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中[3] 有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫。需要注意的是在您使用擴(kuò)展類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實(shí)現(xiàn)。
網(wǎng)絡(luò)爬蟲網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
例子中設(shè)計(jì)的庫
URLLIB
Python 3 的 urllib 模塊是一堆可以處理 URL 的組件集合。如果你有 Python 2 的知識,那么你就會注意到 Python 2 中有 urllib 和 urllib2 兩個版本的模塊。這些現(xiàn)在都是 Python 3 的 urllib 包的一部分。當(dāng)前版本的 urllib 包括下面幾部分:urllib.request urllib.error urllib.parse urllib.rebotparser。
BeautifulSoup
Beautiful Soup提供一些簡單的、python式的函數(shù)用來處理導(dǎo)航、搜索、修改分析樹等功能。它是一個工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù),因?yàn)楹唵危圆恍枰嗌俅a就可以寫出一個完整的應(yīng)用程序。
Beautiful Soup自動將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,Beautiful Soup就不能自動識別編碼方式了。然后,你僅僅需要說明一下原始編碼方式就可以了。Beautiful Soup已成為和lxml、html6lib一樣出色的python解釋器,為用戶靈活地提供不同的解析策略或強(qiáng)勁的速度。
如何使用Urllib#-*- coding: utf-8 -*- #導(dǎo)入urllib庫中的request from urllib import request #使用request的Request方法,括號中的參數(shù)為你想爬取的網(wǎng)址地址 req = request.Request("http://www.baidu.com") #使用req的add_header方法向其中添加一些參數(shù)以使得你的爬蟲看起來像一個普通的HTTP訪問,這個你可以使用瀏覽器的開發(fā)者工具中查到,例如在谷歌瀏覽器中,打開你想爬取的網(wǎng)頁,按F12,截圖如下: ![圖片描述][1] req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36") #獲取所需爬取網(wǎng)站的信息 resp = request.urlopen(req) #打印該信息 print(resp.read().decode("utf-8"))使用Urllib和BeautifulSoup爬取維基網(wǎng)站首頁的鏈接信息
安裝Beautifulsoup
在此我提供使用pip命令行來安裝 ,pip install BeautifulSoup.或者可以參考一下博客也可,博客連接:
[鏈接描述][1][1]: http://blog.csdn.net/jenyzhang/article/details/45828481
具體實(shí)現(xiàn)(非常簡單)
#-- coding: utf-8 -#
#引入開發(fā)包
from urllib.request import Request
from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
#請求URL,并把URL用UTF-8編碼
resp = urlopen("https://en.wikipedia.org/wiki/Main_Page").read().decode("utf-8")
#使用BeautifulSoup去解析
soup = BeautifulSoup(resp,"html.parser")
#去獲取所有以/wiki/開頭的a標(biāo)簽的href屬性
listUrls = soup.findAll("a",href=re.compile("^/wiki/"))
for url in listUrls:
#使用正則表達(dá)式來篩選出后綴名為.jpg或者.JPG的連接 if not re.search(".(jpg|JPG)$",url["href"]): #打印所爬取的信息 print(url.get_text(),"<---->","https://en.wikipedia.org",url["href"])
最后附上項(xiàng)目的源碼地址,當(dāng)然其中還有一些關(guān)于urllib和beautifusoup 以及如何將信息存儲在mysql的聯(lián)系,大家有興趣的可以看一下。
鏈接:http://pan.baidu.com/s/1pLiePCn 密碼:mh4t
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/61914.html
摘要:在近幾年迅速咋程序界掀起了不小的波瀾,而關(guān)于的第三庫也使廣大程序員趨之若鶩,今天我們就由淺入深的探討一下如何使用做一個網(wǎng)絡(luò)爬蟲來抓取一些頁面信息。 Python在近幾年迅速咋程序界掀起了不小的波瀾,而關(guān)于python的第三庫也使廣大程序員趨之若鶩,今天我們就由淺入深的探討一下如何使用python做一個網(wǎng)絡(luò)爬蟲來抓取一些頁面信息。今天我們使用的庫(包含python自身攜帶的庫和第三庫) ...
摘要:時間永遠(yuǎn)都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:也就是用可視化的集搜客爬蟲軟件針對亞馬遜圖書商品頁做一個采集規(guī)則,并結(jié)合規(guī)則提取器抓取網(wǎng)頁內(nèi)容。安裝集搜客爬蟲軟件前期準(zhǔn)備進(jìn)入集搜客官網(wǎng)產(chǎn)品頁面,下載對應(yīng)版本。 showImg(https://segmentfault.com/img/bVEFvL?w=300&h=300); 1. 引言 前面文章的測試案例都用到了集搜客Gooseeker提供的規(guī)則提取器,在網(wǎng)頁抓取工作中,調(diào)試正則表達(dá)...
摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...
閱讀 830·2021-09-22 15:18
閱讀 1181·2021-09-09 09:33
閱讀 2758·2019-08-30 10:56
閱讀 1184·2019-08-29 16:30
閱讀 1488·2019-08-29 13:02
閱讀 1458·2019-08-26 13:55
閱讀 1643·2019-08-26 13:41
閱讀 1941·2019-08-26 11:56