(.*?)
.*?(.*?)
', re.S) result = re.findall(pattern, html) return result ``` 上述代码定义了一个get_chapter函数,通过使用正则表达式提取HTML文本中的章节标题和内容。我们使用re.compile函数来定义正则表达式模式,然后使用re.findall方法来查找所有符合模式的内容。 完整代码实现 最后,我们将上述代码合并,使用一个完整的Python文件来实现我们的《红楼梦》爬虫程序: ``` import requests from bs4 import BeautifulSoup import re def get_html(url): try: response = requests.get(url) response.raise_for_status() response.encoding = response.apparent_encoding return response.text except: return "Error" def get_title(html): soup = BeautifulSoup(html, 'html.parser') title = soup.title.string return title def get_chapter(html): pattern = re.compile('.*?
(.*?)
.*?(.*?)
', re.S) result = re.findall(pattern, html) return result def get_pages(start, end): for i in range(start, end): url = "http://www.xiaoxiaoshuo.com/5/5901/" + str(i) + ".html" html = get_html(url) title = get_title(html) chapters = get_chapter(html) print(title) for chapter in chapters: print(chapter[0]) print(chapter[1]) if __name__ == "__main__": get_pages(1, 5) ``` 上述代码使用了get_html函数获取网页内容,get_title函数获取网页标题,get_chapter函数使用正则表达式提取章节内容。最后我们使用get_pages函数遍历多个网页,获取其中的内容并打印出来。 总结 本文介绍了如何使用Python来实现一个简单的网络爬虫程序,包括如何使用requests库获取网页内容,如何使用Beautiful Soup和正则表达式提取网页内容,以及如何遍历多个网页。当然,这只是一个简单的例子,网络爬虫的应用场景非常广泛,希望本文可以为您提供一些启示。