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