pythonベースのネットワーク爬虫類
887 ワード
pythonのネットワーク爬虫類に基づいて、ニュースサイトの内容を這い取ります.
import re
import time
from html.parser import HTMLParser
from urllib import request
class MyHTMLParser(HTMLParser):
def handle_data(self, data): #html
data = str(data).strip()
if (data.__len__() == 0):
return
mgr = re.match(r'[.\s\S]*[}{;)>/]$', data)
if(mgr.__str__().__len__()>4):
return
print( data)
parser = MyHTMLParser()
with request.urlopen('http://www.bbc.com/news/world-us-canada-44309961') as f:
data = f.read().decode('utf-8')
regex = '/news/world-.{2,6}-\d{8}'
pat = re.compile(regex)
strurl = re.findall(pat,data)
for strur in strurl:
time.sleep(1.5)
with request.urlopen('http://www.bbc.com'+strur) as f:
data = f.read().decode('utf-8')
parser.feed(data)