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:
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]']