Grundlagen des Python-Crawlers + reguläre Ausdrücke

Crawlen Sie eine Website:

import urllib.request
res=urllib.request.urlopen('https://www.csdn.net/')
print(res.read())

Regulärer Crawler-Ausdruck:

1. Extrahieren Sie vier aufeinanderfolgende Zahlen /d/d/d/d

import re
m=re.findall('\d\d\d\d','123adfa56sne6742')
print(m)

Ergebnis: ['6742']

2. Der Kopf und das Ende der Extraktion sind bekannt, und der mittlere Teil wird durch Hinzufügen von Klammern (.*) extrahiert.

m=re.findall(r'<div>(.*)</div>','<div>hello</div>')

Ergebnis: ['Hallo']

3. Wenn mehrere <> vorhanden sind, können mit der obigen Methode nur das erste und das letzte identifiziert werden. Das Ergebnis ist wie folgt:
Fügen Sie hier eine Bildbeschreibung ein

m=re.findall(r'<div>(.*)</div>','<div>hello</div><div>world</div>')

Was sollte in diesem Fall zwischen den Klammern () hinzugefügt werden?

m=re.findall(r'<div>(.*?)</div>','<div>hello</div><div>world</div>')

Das Ergebnis ist ['hello', 'world']

4. Entspricht anderen Zeichen als Zeilenumbrüchen

m=re.findall('.','sd\nefwe')

Ergebnis: ['s', 'd', 'e', ​​​​'f', 'w', 'e']

5. Passen Sie ein beliebiges Zeichen in eckigen Klammern [ ] an

m=re.findall('a[bcd]e','jabesadebacesse')

Ergebnis: ['abe', 'ade', 'ace']

6. Das Extrahieren von Mathematik ist \d, und nicht-digitale Zeichen sind \D

7. Extrahieren Sie das Leerzeichen \s. Das Nicht-Leerzeichen ist \S

m=re.findall('\s',' vssf\t s')

Ergebnis: [' ', '\t', ' ']

8. Extrahieren Sie Buchstaben und Zahlen \w, Nicht-Buchstaben und Zahlen \W

m=re.findall('\w','1d*31&%4')

Ergebnis: ['1', 'd', '3', '1', '4']

9. Extrahieren Sie die Zeichenfolge „abs“.

m=re.findall('abs','absdgregabssff')

Ergebnis: ['abs', 'abs']

Um nur den Anfang zu extrahieren, fügen Sie ^ vor dem übereinstimmenden Zeichen ein

m=re.findall('^abs','absdgregabssff')

Ergebnis: ['abs']

10. Beim Matching wird die Groß-/Kleinschreibung nicht beachtet. Fügen Sie re.I hinzu

m=re.findall('abc','abcABCdf',re.I)

Ergebnis: ['abc', 'ABC']

11. Übereinstimmung mit 0 oder 1 (gefolgt von 0 oder 1 eines bestimmten Zeichens)

m=re.findall('ab?','abbbabbba')

Ergebnis: ['ab', 'ab', 'a']

12. Passen Sie mindestens 1 an

m=re.findall('ab+','abbbabbba')

Ergebnis: ['abbb', 'abbb']

13. Übereinstimmung mit mindestens 0

m=re.findall('ab*','abbbabbba')

Ergebnis: ['abbb', 'abbb', 'a']

14. Ordnen Sie E-Mails zu, die auf „com“ enden

m=re.findall('\w+@\w+\.com','[email protected];[email protected]')

Ergebnis: ['[email protected]']

Supongo que te gusta

Origin blog.csdn.net/qq_42740834/article/details/105329719
Recomendado
Clasificación