python開發簡單爬蟲 準備篇

2021-07-15 22:52:02 字數 2479 閱讀 1660

乙個簡單爬蟲的架構圖如下所示:

簡單爬蟲架構的動態執行流程如下圖所示:

url管理器:管理待爬取的url集合和以爬取的url集合。作用是防止重複爬取和迴圈爬取。

乙個url管理器應該具有以下幾個功能:

關聯式資料庫:

快取資料庫:

方法1:最簡潔的方法

#coding:utf-8

import urllib2

#直接請求

response = urllib2.urlopen('')

#獲取狀態碼,如果是200表示獲取成功

print response.getcode()

#讀取內容

cont = response.read()

print len(cont)

方法2:新增data、http header

#coding:utf-8

import urllib2

#建立request物件

request = urllib2.request('')

#新增http的header,偽裝成瀏覽器訪問

request.add_header('user-agent', 'mozilla/5.0')

#傳送請求,獲取結果

response = urllib2.urlopen(request)

#讀取內容

cont = response.read()

print len(cont)

方法3:新增特殊情景的處理器

#coding:utf-8

import urllib2

import cookielib

#可以進行cookie處理

#直接請求

response = urllib2.urlopen('')

#讀取內容

cont = response.read()

print len(cont)

#列印cookie

print cj

網頁解析器:從網頁中提取出有價值資料的工具。

python有以下幾種網頁解析器:正規表示式、html.parser、beautifulsoup、lxml。

文件樹(document tree)是html頁面的層級結構。它由元素、屬性和文字組成,它們都是乙個節點(node)。

lang="en-us">

charset="utf-8">

html dom樹型結構圖title>

head>

parap>

ghib>

div>

body>

html>根據上面的html文件可以繪製乙個清晰的dom結構樹:

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

soup = beautifulsoup(

html_doc, #html網頁字串

'html.parser', #html解析器

from_encoding='utf-8'

#html文件的編碼)

#搜尋節點方法:find_all(name, attrs, string)

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

soup.find('a')

#查詢所有標籤為a,鏈結符合/view/123.htm形式的節點

#可以傳入正規表示式作為引數

#查詢所有標籤為div,class為abc,文字內容為python的節點

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

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

node.name

#獲取查詢到的a節點的href屬性

node['href']

#獲取查詢到的a節點的鏈結文字

node.get_text()

python爬蟲簡單 python爬蟲 簡單版

學過python的帥哥都知道,爬蟲是python的非常好玩的東西,而且python自帶urllib urllib2 requests等的庫,為爬蟲的開發提供大大的方便。這次我要用urllib2,爬一堆風景。先上重點 1 response urllib2.urlopen url read 2 soup...

Python開發簡單爬蟲之爬蟲介紹(一)

本部落格來自慕課網 python開發簡單爬蟲 爬蟲主要場景 不需要登入的靜態網頁 使用ajax非同步載入的內容 需要使用者登入才可以訪問的網頁 以下主要介紹不需要登入的靜態網頁。3中實現方式 python中已經存在關鍵字class,故當屬性為class時,用class 代替。coding utf 8...

Python開發簡單爬蟲 學習筆記

1.爬蟲簡介 爬蟲是能夠自動抓取網際網路資訊的程式 2.簡單爬蟲架構 3.url管理器 url管理器 管理待抓取url集合和已抓取url集合 防止重複抓取 防止迴圈抓取 urllib2 python官方基礎模組 requests 第三方包更強大,後期推薦使用 import urllib2 直接請求 ...