亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

詳解Python網絡爬蟲功能的基本寫法

系統 1522 0

網絡爬蟲,即Web Spider ,是一個很形象的名字。把互聯網比喻成一個蜘蛛網,那么Spider就是在網上爬來爬去的蜘蛛。

1. 網絡爬蟲的定義

網絡蜘蛛是通過網頁的鏈接地址來尋找網頁的。從網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它鏈接地址,然后通過這些鏈接地址尋找下一個網頁,這樣一直循環下去,直到把這個網站所有的網頁都抓取完為止。如果把整個互聯網當成一個網站,那么網絡蜘蛛就可以用這個原理把互聯網上所有的網頁都抓取下來。這樣看來,網絡爬蟲就是一個爬行程序,一個抓取網頁的程序。網絡爬蟲的基本操作是抓取網頁。

2. 瀏覽網頁的過程

抓取網頁的過程其實和讀者平時使用IE瀏覽器瀏覽網頁的道理是一樣的。比如說你在瀏覽器的地址欄中輸入??? www.baidu.com??這個地址。

打開網頁的過程其實就是瀏覽器作為一個瀏覽的“客戶端”,向服務器端發送了 一次請求,把服務器端的文件“抓”到本地,再進行解釋、展現。

HTML是一種標記語言,用標簽標記內容并加以解析和區分。瀏覽器的功能是將獲取到的HTML代碼進行解析,然后將原始的代碼轉變成我們直接看到的網站頁面。

3. 基于python實現的網絡爬蟲功能

1). python獲取html頁面

其實,最基本的抓站,兩句話就可以了:

            
import urllib2
content = urllib2.urlopen('http://XXXX').read()

          

這樣可以得到整個 html 文檔,關鍵的問題是我們可能需要從這個文檔中獲取我們需要的有用信息,而不是整個文檔。這就需要解析充滿了各種標簽的 html。

2). python爬蟲抓取頁面后解析html方法

python爬蟲html解析庫SGMLParser

Python 默認自帶 HTMLParser 以及 SGMLParser 等等解析器,前者實在是太難用了,我就用 SGMLParser 寫了一個示例程序:

            
import urllib2
from sgmllib import SGMLParser
 
class ListName(SGMLParser):
def __init__(self):
SGMLParser.__init__(self)
self.is_h4 = ""
self.name = []
def start_h4(self, attrs):
self.is_h4 = 1
def end_h4(self):
self.is_h4 = ""
def handle_data(self, text):
if self.is_h4 == 1:
self.name.append(text)
 
content = urllib2.urlopen('http://169it.com/xxx.htm').read()
listname = ListName()
listname.feed(content)
for item in listname.name:
print item.decode('gbk').encode('utf8')

          

? 很簡單,這里定義了一個叫做 ListName 的類,繼承 SGMLParser 里面的方法。使用一個變量 is_h4 做標記判定 html 文件中的 h4 標簽,如果遇到 h4 標簽,則將標簽內的內容加入到 List 變量 name 中。解釋一下 start_h4() 和 end_h4() 函數,他們原型是 SGMLParser 中的

            
start_tagname(self, attrs)
end_tagname(self)
          

tagname 就是標簽名稱,比如當遇到

          ,就會調用 start_pre,遇到 
        
,就會調用 end_pre。attrs 為標簽的參數,以 [(attribute, value), (attribute, value), ...] 的形式傳回。

python爬蟲html解析庫pyQuery

pyQuery 是 jQuery 在 python 中的實現,能夠以 jQuery 的語法來操作解析 HTML 文檔,十分方便。使用前需要安裝,easy_install pyquery 即可,或者 Ubuntu 下

            
sudo apt-get install python-pyquery

          

以下例子:

            
from pyquery import PyQuery as pyq
doc=pyq(url=r'http://169it.com/xxx.html')
cts=doc('.market-cat')
 
for i in cts:
print '====',pyq(i).find('h4').text() ,'===='
for j in pyq(i).find('.sub'):
print pyq(j).text() ,
print '\n'

          

python爬蟲html解析庫BeautifulSoup

有個頭痛的問題是,大部分的網頁都沒有完全遵照標準來寫,各種莫名其妙的錯誤令人想要找出那個寫網頁的人痛打一頓。為了解決這個問題,我們可以選擇著名的 BeautifulSoup 來解析html 文檔,它具有很好的容錯能力。

以上就是本文的全部內容,對Python網絡爬蟲功能的實現進行了詳細的分析介紹,希望對大家的學習有所幫助。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产婷婷综合在线视频中 | 天天摸日日碰天天看免费 | 欧美videofree高清杂交 | 国产日韩精品欧美一区色 | 欧美激情伦妇在线观看 | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠久久丁香 | 国产一级视频久久 | 久热99| 小说区图片区综合久久亚洲 | 成人免费牛牛在线视频 | 欧美video巨大粗暴18 | 一区二区三区中文国产亚洲 | 日韩精品一区二区三区在线观看l | 久久ww| 深夜网站在线观看 | 亚洲欧美日韩中文高清一 | 亚洲精品国产福利一区二区三区 | 国产日韩欧美在线一区二区三区 | 国产91免费在线观看 | 亚洲 欧洲 自拍 另类 校园 | 亚洲欧洲精品在线 | 亚洲欧美成人网 | 久草国产在线播放 | 久久这里有精品视频任我鲁 | 欧美日韩亚洲区久久综合 | 日韩欧美精品有码在线观看 | 四虎精品影视 | 日本高清无吗免费播放 | 亚洲国产爱久久全部精品 | 亚洲国产成人精品激情 | 国产福利视频精品 | 日本大蕉香蕉大视频在线观看 | 毛片一级在线 | 99999久爱视频在线观看 | 色婷婷亚洲 | 国产麻豆高清视频在线第一页 | 国产免费一区二区三区在线 | a色视频| 久久久久久久国产a∨ | 伊人久久大香线蕉亚洲 | 青青青在线视频播放免费 |