03 python高階 爬蟲入門 正則

2022-04-10 12:43:52 字數 1767 閱讀 1091

【urllib and urllib2】

這是兩個python的網路模組 內建的 提供很好的網路訪問的功能。

#!coding:utf-8

import urllib2

res = urllib2.urlopen('')

html = res.read()

print(html)

如果我們想要去爬一些可以這樣幹

#!/usr/bin/env python

#conding:utf-8

import urllib , urllib2

url = ""

header =

req = urllib2.request(url,headers = header)

response = urllib2.urlopen(req)

data = response.read()

import re

#print data

p =re.compile(ur'可以把豆瓣某個電影頁面的封面都爬下來 並且以檔名的形式儲存下來

【正規表示式】

在python中想要用正規表示式就必須要要用re模組

hello worldbody>html>

比如我們想從這裡提取helloword

#coding:utf-8

import re

key = r"hello world

"p1 = r".+"

pattern1 = re.compile(p1)

print pattern1.findall(key)

首先我們知道  . 代表的任意單個字元 而且 + 呢 則代表的是 前面的模擬出現任意次

那麼如果我們想就想匹配 . 

比如我們要匹配   213d3421a.qq.com123123

裡面的a.qq.com

key = r"213d3421a.qq.com123123"

p1 = r"a.\qq.\com"

pattern1 = re.compile(p1)

print pattern1.findall(key)

我們通過 『\』 來轉義 將 【. 】 從任意單個字元轉義成它原本的意思

個人理解:我們在學習正規表示式的時候 應該把正規表示式分成 表示式語句 和 修飾語句 兩部分來看 這樣就會容易很多

就比方我們看過的例子

#coding:utf-8

import re

key = r"hello world

"p1 = r".+"

pattern1 = re.compile(p1)

print pattern1.findall(key)

我們可以理解為 . 就是代表表示式 而+ 代表的是修飾符 .代表的任意單個字元 而+則是出現任意此 那麼.+的意思就是任意字元出現任意次

#conding:utf-8

import re

key = r"abb adb abbb a abcd"

p1 = r"ab*"

pattern1 = re.compile(p1)

print pattern1.findall(key)

我們看這段** 能匹配到那些呢

*代表的是他前面的字元出現任意次 那麼 這裡的表示式就是*前面的字元 而修飾語言就是* 

這裡能被匹配道的是

['abb', 'a', 'abbb', 'a', 'ab']

03 Python爬蟲入門遇到的坑

3.向360搜尋提交問題 使用程式碼模擬使用360搜尋.大概就是要得到下面這個頁面.首先我們要知道360給出的介面是 其中的keyword就是我們提交的關鍵字.這時候我們可以使用乙個字典向瀏覽器提交關鍵字 kv 然後使用params屬性提交這個自帶即可.示例程式碼如下 import requests...

03 python爬蟲基本原理

爬蟲是 模擬使用者在瀏覽器或者某個應用上的操作,把操作的過程 實現自動化的程式 當我們在瀏覽器中輸入乙個url後回車,後台會發生什麼?比如說你輸入 簡單來說這段過程發生了以下四個步驟 網路爬蟲本質 本質就是瀏覽器http請求 瀏覽器和網路爬蟲是兩種不同的網路客戶端,都以相同的方式來獲取網頁 網路爬蟲...

03 Python集合型別

python集合型別思維導圖 只有1個元素的tuple定義時必須加乙個逗號,來消除歧義 2 常用操作 2 字典的常見操作 2 新增元素 3 刪除元素 clear 3 字典的常見函式 2 keys map.keyset 3 values 4 items 4 字典遍歷 3 dict可以用在需要高速查詢的...