python網(wǎng)絡(luò)爬蟲學習筆記(1)
本文實例為大家分享了python網(wǎng)絡(luò)爬蟲的筆記,供大家參考,具體內(nèi)容如下
(一) 三種網(wǎng)頁抓取方法
1、 正則表達式:
模塊使用C語言編寫,速度快,但是很脆弱,可能網(wǎng)頁更新后就不能用了。
2、Beautiful Soup
模塊使用Python編寫,速度慢。
安裝:
pip install beautifulsoup4
3、 Lxml
模塊使用C語言編寫,即快速又健壯,通常應(yīng)該是最好的選擇。
(二) Lxml安裝
pip install lxml
如果使用lxml的css選擇器,還要安裝下面的模塊
pip install cssselect
(三) 使用lxml示例
import urllib.request as re import lxml.html #下載網(wǎng)頁并返回HTML def download(url,user_agent='Socrates',num=2): print('下載:'+url) #設(shè)置用戶代理 headers = {'user_agent':user_agent} request = re.Request(url,headers=headers) try: #下載網(wǎng)頁 html = re.urlopen(request).read() except re.URLError as e: print('下載失敗'+e.reason) html=None if num>0: #遇到5XX錯誤時,遞歸調(diào)用自身重試下載,最多重復(fù)2次 if hasattr(e,'code') and 500<=e.code<600: return download(url,num-1) return html html = download('https://tieba.baidu.com/p/5475267611') #將HTML解析為統(tǒng)一的格式 tree = lxml.html.fromstring(html) # img = tree.cssselect('img.BDE_Image') #通過lxml的xpath獲取src屬性的值,返回一個列表 img = tree.xpath('//img[@class="BDE_Image"]/@src') x= 0 #迭代列表img,將圖片保存在當前目錄下 for i in img: re.urlretrieve(i,'%s.jpg'%x) x += 1
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python實現(xiàn)的登錄和操作開心網(wǎng)腳本分享
這篇文章主要介紹了python實現(xiàn)的登錄和操作開心網(wǎng)腳本分享,可以登錄開心網(wǎng),登錄后發(fā)送信息等功能,需要的朋友可以參考下2014-07-07PyQt5+python3+pycharm開發(fā)環(huán)境配置教程
這篇文章主要介紹了PyQt5+python3+pycharm開發(fā)環(huán)境配置教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03