Python使用urllib和BeautifulSoup抓取网页数据并存入txt

需积分: 12 1 下载量 81 浏览量 更新于2024-08-05 收藏 1KB TXT 举报
"本示例展示了如何使用Python编程语言中的urllib和BeautifulSoup库来抓取网页数据,并将获取的信息保存到一个txt文件中。主要涉及的技术包括HTTP请求、HTML解析以及数据存储。" 在Python中,`urllib` 和 `urllib.request` 模块提供了处理URL的工具,包括发送HTTP请求和获取响应。在给定的代码中,首先导入了这两个模块,然后定义了一个名为 `get_info` 的函数,该函数接收一个URL作为参数。在函数内部,创建了一个 `Request` 对象,设置了用户代理头(`headers`),这有助于避免被某些网站识别为机器人。接着,使用 `urlopen` 函数发送请求并获取响应。 `BeautifulSoup` 是一个用于解析HTML和XML文档的库,这里使用它来提取网页中的特定数据。通过传递解析器(这里是 `lxml`)和解码后的响应内容,可以解析HTML文档。代码中使用 `find_all` 方法找到所有具有特定CSS类的 `span` 标签,分别对应新闻标题(`column-news-title`)和日期(`column-news-date`)。这些数据被添加到两个列表中,然后通过 `zip` 函数将它们组合成一个字典,其中标题作为键,日期作为值。 在主程序部分,构建了一个URL列表(`urls`),用于遍历指定网页的20个页面。同样设置了一个用户代理头,并在循环中调用 `get_info` 函数,每次获取一页的数据。最后,将所有数据以JSON格式写入到名为 `xinwen.txt` 的文本文件中,`json.dumps` 负责将字典转换为JSON字符串,同时设置了排序键、缩进和禁用ASCII编码,以便于阅读。 这段代码的目的是实现网页新闻标题和日期的抓取与存储,对于学习网络爬虫和数据处理是很好的实践案例。它演示了如何结合使用Python的HTTP请求库和HTML解析库来处理网络数据,并将其保存到本地文件。在实际应用中,可以扩展这个基础框架,处理更复杂的数据结构,或者添加错误处理和更高级的爬虫策略。