在这个博客中,我们将探索如何使用 Python 来进行网络数据抓取,并以抓取旅游数据为例进行演示。我们将通过一个简单的示例来说明如何利用 Python 中的常用库进行网页抓取,从而获取旅游网站上的信息。
背景在今天的数字化时代,网络是一个充满了各种信息和资源的巨大宝库。然而,要从网络上获取所需的信息,可能需要花费大量的时间和精力。幸运的是,有一种被称为网页抓取的技术可以帮助我们自动化这个过程。
代码解析1. 导入必要的库
import osfrom hashlib import md5import pandas as pdimport requestsfrom bs4 import BeautifulSoupos:用于操作文件路径等系统功能的标准 Python 库。 hashlib:用于生成哈希值的标准 Python 库,这里用于生成景点名称的哈希值作为数据的唯一标识。 pandas:用于数据处理和分析的流行 Python 库。 requests:用于发送 HTTP 请求和接收响应的 Python 库。 BeautifulSoup:用于解析 HTML 和 XML 文档的 Python 库。
2. 定义 get_page 函数
def get_page(url, city):response = requests.get(url=url)page_text = response.texthtml = BeautifulSoup(page_text, 'lxml')li_list = html.find('div', class_='listbox').find('ul').find_all('li')for li in li_list:# 解析网页中的景点信息并存储到字典中name = li.find('a', class_='titlink').textstrategy_sum = li.find('div', class_='strategy_sum').textcomment_sum = li.find('div', class_='comment_sum').textcur_star = li.find('span', class_='cur_star')['style'].split(':')[1].replace('%', '')ranking_sum = li.find('span', class_='ranking_sum').textdesbox = li.find('div', class_='desbox')link = li.find('a', class_='imglink')['href']img = li.find('a', class_='imglink').find('img')['src']# 将景点信息存储到字典中citydata = {'key': md5(name.encode('utf-8')).hexdigest(),'城市': city,'景点名称': name,'攻略数量': strategy_sum,'评论数量': comment_sum,'星级': cur_star,'排名': ranking_sum,'简介': desbox.text,'