日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用urllib3 抓取博客列表

發布時間:2025/3/19 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用urllib3 抓取博客列表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用urllib3 抓取博客列表

  • 分析頁面代碼
  • 分析正則表達式
  • 完整代碼

分析頁面代碼

從這段代碼中可以找到很多規律,例如,每條博客的所有信息都包含在一個 <div> 節點中,這個<div>節點的class屬性值都是post-item-text,每一條博客的標題和URL都包含在一個<a>節點中,這個<a> 在,節點的class屬性值是post-item-title。根據這些規律,很容易過濾出想要的信息。由于本例只需要得到: 博客的標題和URL,所以只關注 <a> 節點即可。本例的基本原理就是通過正則表達式過濾出所有class屬性值為titlelenk的 <a>節點,然后從 <a>節點中提煉出博客標題和URL。

分析正則表達式

<a class="post-item-title" href="https://www.cnblogs.com/lianghong881018/p/15169424.html" target="_blank">基于RT1052 Aworks 內存擴容記錄(一)</a> 這個是<a>的內容得到以下正則表達式 <a[^>]*post-item-title[^>]*>[^<]*</a>
  • [^>]*:是匹配出來>字符的所有字符,在這里匹配class=",下一個則是匹配" href="https://www.cnblogs.com/lianghong881018/p/15169424.html" target="_blank"

完整代碼

from urllib3 import * from re import *http = PoolManager() # 禁止顯示警告信息 disable_warnings() # 加載 url 對應得Web界面,即響應后轉送的信息 def download(url):result = http.request('GET',url)# 獲取Web頁面對應的HTML代碼htmlStr = result.data.decode('utf-8')return htmlStr#分析HTML代碼 def analyse(htmlStr):# 通過正則表達式獲取 class 屬性為 post-item-title 的<a>節點aList = findall('<a[^>]*post-item-title[^>]*>[^<]*</a>',htmlStr)result = []# 提取每一個<a>節點中的URLfor a in aList:g = search('href[\s]*=[\s]*[\'"]([^>\'""]*)[\'"]',a)if g!=None:url = g.group(1)# a為字符串,找到索引通過切片來得到標題index1 = a.find(">")index2 = a.rfind("<")title = a[index1+1:index2]d = { }d['url'] = urld['title'] = titleresult.append(d)return result # 抓取博客列表 def crawler(url):html = download(url)blogList = analyse(html)#輸出信息for blog in blogList:print('title: ',blog['title'])print('url: ', blog['url'])# 開始抓取 crawler('https://www.cnblogs.com')

總結

以上是生活随笔為你收集整理的利用urllib3 抓取博客列表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。