簡單爬蟲實現 爬取URL

2021-09-02 22:43:23 字數 2429 閱讀 8938

實驗室任務詳細:寫乙個python指令碼,指令碼後面跟上乙個url的**頁面。

要求:正則匹配爬蟲的方式,匹配該url網頁中的html的href標籤中的url,顯示這些url,一行乙個。

首先明確什麼是 href:

定義和用法

標籤的 href 屬性用於指定超連結目標的 url。

href 屬性的值可以是任何有效文件的相對或絕對 url,包括片段識別符號。如果使用者選擇了 標籤中的內容,那麼瀏覽器會嘗試檢索並顯示 href 屬性指定的 url 所表示的文件

提示和注釋

注意:標籤中必須提供 href 屬性或 name 屬性。

語法

屬性值

值 描述

url 超連結的 url。可能的值:絕對 url - 指向另乙個站點(比如 href="")相對 url - 指向站點內的某個檔案(href="index.htm")錨 url - 指向頁面中的錨(href="#top")

獲取超連結之間內容

res = r'(.*?)'

urls=re.findall(r"", content, re.i|re.s|re.m)

re.i 忽略大小寫

re.l 表示特殊字符集 \w, \w, \b, \b, \s, \s 依賴於當前環境

re.m 多行模式

re.s 即為 . 並且包括換行符在內的任意字元

re.u 表示特殊字符集 \w, \w, \b, \b, \d, \d, \s, \s 依賴於 unicode 字元屬性資料庫

re.x 為了增加可讀性,忽略空格和 # 後面的注釋

例子:

# coding=utf-8

import re

content = '''

浙江省主題介紹

貴州省主題介紹

'''

#獲取之間的內容

print u'獲取鏈結文字內容:'

res = r'(.*?)'

mm = re.findall(res, content, re.s|re.m)

for value in mm:

print value

#獲取所有鏈結所有內容

print u'\n獲取完整鏈結內容:'

urls=re.findall(r"", content, re.i|re.s|re.m)

for i in urls:

print i

#獲取中的url

print u'\n獲取鏈結中url:'

res_url = r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')"

link = re.findall(res_url , content, re.i|re.s|re.m)

for url in link:

print url

輸出如下圖所示:

>>> 

獲取鏈結文字內容:

浙江省主題介紹

貴州省主題介紹

獲取完整鏈結內容:

浙江省主題介紹

貴州省主題介紹

獲取鏈結中url:

>>>

python正規表示式(菜鳥教程)

python 自1.5版本起增加了re 模組,它提供 perl 風格的正規表示式模式。

re 模組使 python 語言擁有全部的正規表示式功能。

爬蟲講解

爬蟲高階(知乎)

最終成果:

# coding=utf-8

import re

#匯入正則模組

import urllib

#匯入url模組

url = ""

#可變更url

content = urllib.urlopen(url).read()

#開啟,並讀入鏈結內容

print u'\n獲取鏈結中url:'

# 獲取中的url

res_url = r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')"

#正則匹配url

links = re.findall(res_url, content, re.i | re.s | re.m)

#用陣列盛放爬取的鏈結,findall函式返回的總是正規表示式在字串中所有匹配結果的列表

#re.i(re.ignorecase): 忽略大小寫(括號內是完整寫法)

#re.m(re.multiline): 多行模式,改變'^'和'$'的行為

#re.s(re.dotall): 點任意匹配模式,改變'.'的行為

for url in links:

print url

#列印links陣列中的每乙個url

python簡單爬蟲爬取佇列的實現

deque 是雙端佇列。set 中不允許出現重複的內容。import re import urllib import urllib.request from collections import deque queue deque 待抓取的網頁 visited set 已經抓取過的網頁 url nu...

簡單的爬蟲爬取文章

我們會用一些簡單的爬蟲去爬取 等,那麼在別人的 中我們的應選擇對應的標題等資料作為爬取的內容標桿 如以下 模擬瀏覽器發請求 connection connect jsoup.connect document doc connect.get elements select doc.select lis...

Python簡單爬蟲(爬取天氣資訊)

初學python,學到python爬蟲時在網上找資料,發現找到的大部分都是前部分內容對運作方式介紹,然後就直接上 了,這樣對像我一樣的小白來說比較困難,的注釋較少,部分 塊沒有詳細說明運作方式和具體作用,所以寫此筆記方便別人和自己以後進行學習檢視。作業系統window python2.7.10 wi...