Python爬蟲獲取頁面所有URL鏈接過程詳解
如何獲取一個頁面內(nèi)所有URL鏈接?在Python中可以使用urllib對網(wǎng)頁進(jìn)行爬取,然后利用Beautiful Soup對爬取的頁面進(jìn)行解析,提取出所有的URL。
什么是Beautiful Soup?
Beautiful Soup提供一些簡單的、python式的函數(shù)用來處理導(dǎo)航、搜索、修改分析樹等功能。它是一個工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù),因?yàn)楹唵?,所以不需要多少代碼就可以寫出一個完整的應(yīng)用程序。
Beautiful Soup自動將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,Beautiful Soup就不能自動識別編碼方式了。
BeautifulSoup支持Python標(biāo)準(zhǔn)庫中的HTML解析器,還支持一些第三方的解析器,如果我們不安裝它,則 Python 會使用 Python默認(rèn)的解析器,lxml 解析器更加強(qiáng)大,速度更快。
全部代碼:
from bs4 import BeautifulSoup import time,re,urllib2 t=time.time() websiteurls={} def scanpage(url): websiteurl=url t=time.time() n=0 html=urllib2.urlopen(websiteurl).read() soup=BeautifulSoup(html) pageurls=[] Upageurls={} pageurls=soup.find_all("a",href=True) for links in pageurls: if websiteurl in links.get("href") and links.get("href") not in Upageurls and links.get("href") not in websiteurls: Upageurls[links.get("href")]=0 for links in Upageurls.keys(): try: urllib2.urlopen(links).getcode() except: print "connect failed" else: t2=time.time() Upageurls[links]=urllib2.urlopen(links).getcode() print n, print links, print Upageurls[links] t1=time.time() print t1-t2 n+=1 print ("total is "+repr(n)+" links") print time.time()-t scanpage(http://news.163.com/)
利用BeautifulSoup還可以有針對性的獲取網(wǎng)頁鏈接:Python爬蟲獲取網(wǎng)頁上的鏈接,通過beautifulsoup的findall()方法對匹配的標(biāo)簽進(jìn)行查找。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python自動化自定義字體混淆信息的方法實(shí)例
今天小編就為大家分享一篇關(guān)于使用Python自動化自定義字體混淆信息的方法實(shí)例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02python 讀取鼠標(biāo)點(diǎn)擊坐標(biāo)的實(shí)例
今天小編就為大家分享一篇python 讀取鼠標(biāo)點(diǎn)擊坐標(biāo)的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python實(shí)現(xiàn)將Excel轉(zhuǎn)換成為image的方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)將Excel轉(zhuǎn)換成為image的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10python如何解析復(fù)雜sql,實(shí)現(xiàn)數(shù)據(jù)庫和表的提取的實(shí)例剖析
這篇文章主要介紹了python如何解析復(fù)雜sql,實(shí)現(xiàn)數(shù)據(jù)庫和表的提取的實(shí)例剖析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05python統(tǒng)計(jì)日志ip訪問數(shù)的方法
這篇文章主要介紹了python統(tǒng)計(jì)日志ip訪問數(shù)的方法,涉及Python操作日志文件及正則匹配的相關(guān)技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-07-07