溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python網(wǎng)絡(luò)爬蟲的示例分析

發(fā)布時間:2021-08-26 10:20:32 來源:億速云 閱讀:136 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“python網(wǎng)絡(luò)爬蟲的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“python網(wǎng)絡(luò)爬蟲的示例分析”這篇文章吧。

(一)   三種網(wǎng)頁抓取方法

1、 正則表達(dá)式:

模塊使用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,將圖片保存在當(dāng)前目錄下
for i in img:
  re.urlretrieve(i,'%s.jpg'%x)
  x += 1

以上是“python網(wǎng)絡(luò)爬蟲的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI