Python輕量級爬蟲教程 網頁解析器

2021-08-04 10:47:03 字數 2493 閱讀 5525

網頁解析器: 從網頁中提取我們想要的資料的工具

python的幾種網頁解析器:

正規表示式(模糊匹配)

結構化解析:

html.parser

beautifulsoup(第三方外掛程式)

lxml(第三方外掛程式)

網頁解析器之- beautiful soup

首先測試是否安裝beautiful soup4 

import bs4

print bs4

如果提示以下表示已經安裝了beautiful soup4 ,不然就要自己安裝了

beautiful soup 語法

#coding:utf8

importbs4

frombs4importbeautifulsoup#根據

html

網頁字串建立

beautifulsoup

物件soup = beautifulsoup(

html_doc, #html

文件字串

'html.parser', #html

解析器from_encoding ='utf8'#html

文件的編碼)#

查詢所有標籤為

a的節點

soup.find_all('a')

#查詢所有標籤為

a,鏈結符合

形式的節點

#查詢所有標籤為

div, class

為abc

,文字為

python

的節點#class

是python

的關鍵字

soup.find_all('div', class_='abc', string ='python')

#得到節點:

python

#獲取查詢到的節點的標籤名稱

node.name

#獲取查詢到的

a節點的

href

屬性node['href']

#獲取查詢到的

a節點的鏈結文字

node.get_text()

例項**:

#coding:utf8

import bs4

import re

from bs4 import beautifulsoup

html_doc = """

python教程

首頁入門教程

練習題python教程

django教程

seo應用

linux

測試應用

書籍推薦

"""#根據html網頁字串建立beautifulsoup物件

soup = beautifulsoup(

html_doc, #html文件字串

'html.parser', #html解析器

from_encoding = 'utf-8' #html文件的編碼

)print '獲取所有的鏈結'

#查詢所有標籤為a的節點

links = soup.find_all('a')

for link in links:

print link.name, link['href'], link.get_text()

print"獲取指定鏈結"

link_node = soup.find('a', href = '')

print link_node.name, link_node['href'], link_node.get_text()

print"正則匹配"

link_node = soup.find('a', href = re.compile(r"tal"))

print link_node.name, link_node['href'], link_node.get_text()

print"獲取p段落文字"

p_node = soup.find('a',rel="nofollow")

print p_node.name, p_node.get_text()

python 輕量級爬蟲開發2

urllib2 python官方基礎模組 request 第三方包更強大 url urllib2.urlopen url coding utf 8 import urllib2 直接請求 response urllib2.urlopen 獲取狀態碼 print response.getcode 讀取...

python 輕量級爬蟲開發3

採用beautiful外掛程式 建立beautifulsoup物件 from bs4 import beautifulsoup 根據html網頁字串建立beautifulsoup物件 soup beautifulsoup html doc,html文件字串 html.parser html解析器 f...

輕量級爬蟲開發(二)

二 簡單爬蟲架構 動態執行流程 三 url管理器 管理待抓取url集合和已抓取的url集合 目的在於 防止重複和迴圈抓取。url之間往往迴圈指向的,如果不對url進行管理,爬蟲就會不斷的抓取這些url,最糟糕的情況兩個url互相指向,則我們將不停的抓取這兩個url管理器,形成死迴圈。功能 url管理...