包含python常用爬蟲正則表達式的詞條

本文目錄一覽:

python的正則表達式

1,正則表達式的一些內容

        正則表達式主要是用來匹配文本中需要查找的內容,例如在一片文章中找出電話號碼,就中國的來說11位純數字(不說座機),則使用”\d{11}” 意味匹配數字11次,就能準確的查找出文本中的電話號碼. 還有就是在編寫網絡爬蟲的時候需要提取很多超鏈接再次進行爬取,使用正則表達式就很方便.直接匹配http開頭就行,當然也可以使用beautifulsoup的select方法.

看下面的程序看看正則表達提取文本中的郵箱:

\w 匹配字母,數字,下劃線 

+ 匹配1次或者多次

re是正則表達式的工具包,工具包出錯的話在anaconda的命令行輸入”pip install re”安裝,其他的工具包也是如此.

re.compile()中的r示意\不是轉義字符,也就是保持後面字符串原樣,findall返回一個列表.下面還有一個版本的程序略有不同.

compile的另一個參數re.IGONORECASE(忽略大小寫),還可以是re.DORALL,多行模式,具體功能也是模糊不清,不過在使用通配符 . 匹配的時候加上re.DOTALL參數能夠匹配換行.如果希望忽略大小寫和多行模式都開啟可以使用re.compile(r’….’,re.IGNORECASE|re.DOTALL) .

表達式使用( ),對匹配到的內容分為3組 也就是(\w+)出現字母,數字,下劃線一次或多次,這個分組就是下面使用match對象的grou()方法的時候的參數.不給參數和參數0都是得到整個匹配到的內容,  參數1得到第一個括號匹配到的內容,以此類推參數2和3,如果沒有括號分組的話使用參數會出現錯誤.

search( )查找和正則式匹配的內容,只匹一次後面的那個找不到.返回一個match對象

\w 匹配字母,數字,下劃線

\W 匹配字母,數字.下劃線之外的所有字符

\d 匹配數字

\D 匹配非數字

\s 匹配空格,製表符,換行符

\S匹配除空格製表符,換行符之外的其他字符

[ …. ]定義自己的匹配,如[aeiouAEIOU ]匹配所有的元音字母,注意不是匹配單詞.

{最少次數,最多次數},例如{3,9} 匹配3-9次,{ ,10}匹配0-10次. 默認為匹配最多次數(貪心匹配),非貪心模式在後面加上問號 

?  可選 0次或者1次吧  

+匹配1次或多次

*匹配0次或者多次

^ 判斷開頭 ^\d 如果待匹配串是數字開頭則返回第一個數字

$判斷結尾  \d$  如果待匹配串是數字結尾則返回最後一個數字

.   通配符,匹配除換行之外的所有字符

   \d{11}  匹配數字11次

    . * 匹配所有字符除 換行

[a-zA-Z0-9._%+-]  小寫和大寫字母、數字、句點、下劃線、百分號、加號或短橫

[a-zA-Z]{2,4} 匹配字母 2 – 4次

python曲配圖片爬蟲正則表達式

開頭’scr=’和結尾’pic_ext’是字符串匹配,意思是匹配src=開頭,pic_ext結尾,中間是***.jpg這樣的字符串的意思

return是返回最後獲得的圖片文件列表,因為這本身是一個函數

python 網絡爬蟲 正則表達式

import re

file = open(‘xx.htm’,’r’,encoding = ‘gbk’)

allLines = file.readlines()

xx = ”.join(allLines).encode(‘utf8’).decode(‘utf8’)

a = re.findall(r’tddiv align=”[\s\S]*/td?’,xx)

#print(‘\n’.join(a))

for i in a:

    a = re.findall(r’\d+[.]?\d*/div?|\d{4}-\d{2}-\d{2}/div?|[\u4e00-\u9fa5]+?’,i)

    print(‘\n’.join(a))

file.close()

Python爬蟲正則表達式匹配多個給定字符串間的內容

你的正則表達式使用了貪婪模式的匹配(.*),應該用非貪婪模式,正則表達式應該為a

href=”/(.*?)-desktop-wallpapers.html

完整的python語言程序如下

#!/usr/bin/python3

import re

a = ‘htmlbodyp[a href=”/aero-desktop-wallpapers.html” title=”Aero HD Wallpapers”Aero/a, a href=”/animals-desktop-wallpapers.html” title=”Animals HD Wallpapers”Animals/a, a href=”/architecture-desktop-wallpapers.html” title=”Architecture HD Wallpapers”Architecture/a,Wallpapers”Artistic/a, ……..(省略)……… a href=”/vintage-desktop-wallpapers.html” title=”Vintage HD Wallpapers”Vintage/a]/p/body/html’

titles = re.findall(‘a href=”/(.*?)-desktop-wallpapers.html’,str(a))

print (titles)

運行結果

[‘aero’, ‘animals’, ‘architecture’, ‘vintage’]

請問用python爬蟲抓取此網站的有關信息正則表達式和beautifulsoup怎麼寫?

代碼如下:

#coding=utf-8

import re

import requests

from bs4 import BeautifulSoup

resp = requests.get(”)

if resp.status_code == 200:

    soup = BeautifulSoup(resp.content.decode(‘GB2312’), ‘xml’)

    

    content = soup.find(‘div’, id = ‘postContent’)

    items = content.find_all(‘p’, attrs = {‘class’: ‘bbsp’})

    

    regex = re.compile(r’\d*(.*?)\s*((?:\d+°\s?)?(?:\d+\’\s?)?(?:\d+\.\d+\”\s?)?N)\s*((?:\d+°\s?)?(?:\d+\’\s?)?(?:\d+\.\d+\”\s?)?[WE])’)

    for item in items:

        line = item.text.strip()

        if line != ”:

            match = regex.match(line)

            if match:

                groups = match.groups()

                print(‘名稱:’, groups[0])

                print(‘北緯:’, groups[1])

                print(‘東經:’, groups[2])

                print(‘—————————————-‘)

運行結果:

原創文章,作者:JAHKM,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/130581.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JAHKM的頭像JAHKM
上一篇 2024-10-03 23:29
下一篇 2024-10-03 23:29

相關推薦

  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python正則表達式search()和match()有什麼區別?

    search()和match()都是Python中的正則表達式函數,它們的作用都是在一個字符串中搜索匹配正則表達式的位置,但它們有着不同的使用場景和返回結果。 一、search()…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • 使用Selenium爬蟲實現數據採集

    本文將詳細闡述如何使用Selenium爬蟲實現數據採集,包括Selenium的基本用法,Selenium + Beautiful Soup庫的用法以及常見問題的解決方案。如果您是初…

    編程 2025-04-29
  • Python爬蟲亂碼問題

    在網絡爬蟲中,經常會遇到中文亂碼問題。雖然Python自帶了編碼轉換功能,但有時候會出現一些比較奇怪的情況。本文章將從多個方面對Python爬蟲亂碼問題進行詳細的闡述,並給出對應的…

    編程 2025-04-29
  • Python序列的常用操作

    Python序列是程序中的重要工具,在數據分析、機器學習、圖像處理等很多領域都有廣泛的應用。Python序列分為三種:列表(list)、元組(tuple)和字符串(string)。…

    編程 2025-04-28
  • Python爬蟲文檔報告

    本文將從多個方面介紹Python爬蟲文檔的相關內容,包括:爬蟲基礎知識、爬蟲框架及常用庫、爬蟲實戰等。 一、爬蟲基礎知識 1、爬蟲的定義: 爬蟲是一種自動化程序,通過模擬人的行為在…

    編程 2025-04-28
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • Python爬蟲商品評論入門指南

    如何使用Python爬取商品評論信息?這是一個有趣的問題。本文將從多個方面詳細講解Python爬蟲實現商品評論信息的抓取,包括:選擇合適的爬蟲工具、構建爬蟲流程、模擬網頁請求以及數…

    編程 2025-04-28

發表回復

登錄後才能評論