Demo Code
import urllib.request
import re
from bs4 import BeautifulSoup
def getHtml(url):
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
html = response.read()
return html
def saveHtml(file_name,file_content):
with open(file_name.replace('/','_')+'.html','wb') as f:
f.write(file_content)
menu_url = 'https://blog.csdn.net/qq_34668874/article/details/105387027'
menu_req = urllib.request.Request(menu_url)
menu_resp = urllib.request.urlopen(menu_req)
menu_html_page = menu_resp.read().decode('utf-8')
title_pattern = r'<a href="(.*)">(.*)</a>\.'
title_all = re.findall(title_pattern, menu_html_page)
for title in title_all:
saveHtml(title[1], getHtml(title[0]))
Demo Result
Summary
Point1 这里需要注意findall获取的并非简单的字符串,而是经过()分割后的部分,即对其元素进行遍历时直接可以用下标来进行类似group的操作