Python爬虫抓取新浪国际新闻并存储到MySQL

需积分: 1 0 下载量 152 浏览量 更新于2024-08-03 收藏 826B TXT 举报
"本示例展示了如何使用Python编写一个简单的爬虫程序,抓取新浪国际新闻网站的新闻标题和链接,并将这些数据存储到MySQL数据库中。主要涉及的技术包括Python的requests库用于发送HTTP请求,BeautifulSoup库进行HTML解析,以及mysql.connector模块用于与MySQL数据库建立连接并执行SQL操作。" 在Python爬虫开发中,首先我们需要导入必要的库。在这个例子中,我们导入了`requests`库来发送网络请求,`BeautifulSoup`库用于解析HTML文档,以及`mysql.connector`来处理与MySQL数据库的交互。 `requests.get(url)`函数用于向指定URL(在这个案例中是新浪国际新闻的网址)发送GET请求,获取网页内容。`response.content`返回的是网页的二进制内容,通过`BeautifulSoup(response.content, 'html.parser')`解析成可操作的对象。 `soup.find_all('a', class_='news-item')`用于查找页面中所有类名为`news-item`的`<a>`标签,这些标签通常包含新闻的标题和链接。遍历这个列表,我们可以提取每条新闻的标题和链接。 `news.text.strip()`用于获取新闻标题,`news['href']`获取链接。然后,我们将这些数据保存到MySQL数据库中。在连接数据库时,你需要提供自己的数据库配置,包括主机名、用户名、密码和数据库名。 `sql="INSERT INTO news(title, link) VALUES(%s, %s)"`是插入数据的SQL语句,其中`%s`是占位符,用于动态填充实际值。`val=(title, link)`定义了要插入的数据,`cursor.execute(sql, val)`执行SQL语句,`mydb.commit()`提交事务,确保数据被保存。 最后,通过打印消息"新闻已保存到MySQL数据库中!"来确认操作成功。 这个简单的爬虫程序可以作为一个基础模板,你可以根据实际需求进行扩展,比如添加错误处理、设置爬虫间隔时间以避免频繁请求,或者增加更多字段来存储新闻的其他信息,如发布时间、作者等。同时,考虑使用数据库连接池来优化性能,以及使用更高级的库如Scrapy进行更复杂的爬虫构建。