Python爬虫实战
在互联网时代,网络数据的获取变得尤为重要,而网络爬虫作为一种自动获取网页信息的工具,被广泛应用于各种领域。本文将介绍使用Python语言编写爬虫的实战经验,帮助读者更好地掌握爬虫技术。
爬虫基础
在编写爬虫之前,需要先了解一些爬虫的基础知识。爬虫的工作原理是模拟浏览器向网页服务器发送请求,并解析响应内容。Python语言有着丰富的第三方库支持,其中requests
和BeautifulSoup
是常用的爬虫库。
requests库
requests
库是Python中用于发送HTTP请求的库,可以轻松地向服务器发送请求并获取响应内容。以下是使用requests
库发送GET请求的示例代码:
import requests
url = 'https://www.example.com'
response = requests.get(url)
print(response.text)
上述代码中,首先导入requests
库,然后定义一个URL地址,并通过requests.get
方法发送GET请求,最后打印出响应内容。运行代码后,将会输出网页的HTML源代码。
BeautifulSoup库
BeautifulSoup
库是Python中用于解析HTML和XML文档的库,可以快速地从网页源代码中抽取所需的信息。以下是使用BeautifulSoup
库解析网页的示例代码:
from bs4 import BeautifulSoup
html = '<html><body><h1>Hello, World!</h1></body></html>'
soup = BeautifulSoup(html, 'html.parser')
print(soup.h1.text)
上述代码中,首先导入BeautifulSoup
库,然后定义一个HTML字符串,并通过BeautifulSoup
方法创建一个解析器,最后打印出<h1>
标签内的文本内容。运行代码后,将会输出Hello, World!
。
爬取网页数据
有了上述基础知识,我们可以开始编写爬虫程序来爬取网页数据了。下面以爬取豆瓣电影Top250为例,演示如何使用Python实现爬虫功能。
爬取豆瓣电影Top250
首先,我们需要分析豆瓣电影Top250页面的网页结构,确定需要爬取的内容和相应的爬取规则。在本例中,我们将爬取电影名称、评分和排名。
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/top250'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.find_all('div', class_='info')
for movie in movies:
title = movie.find('span', class_='title').text
rating = movie.find('span', class_='rating_num').text
rank = movie.find('em').text
print(f'排名:{rank} 电影:{title} 评分:{rating}')
上述代码中,首先发送GET请求获取豆瓣电影Top250页面的源代码,然后使用BeautifulSoup
库解析网页内容,提取出每部电影的名称、评分和排名,并打印出来。运行代码后,将会输出排名、电影名称和评分信息。
数据存储
爬取到数据后,通常需要将数据保存到本地文件或数据库中,以备后续分析和使用。在Python中,可以使用csv
、json
等模块将数据保存到文件中。
保存为CSV文件
以下是将豆瓣电影Top250数据保存为CSV文件的示例代码:
import csv
with open('movies.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(['排名', '电影', '评分'])
for movie in movies:
title = movie.find('span', class_='title').text
rating = movie.find('span', class_='rating_num').text
rank = movie.find('em').text
writer.writerow([rank, title, rating])
上述代码中,首先使用csv.writer
创建一个CSV写入器,然后遍历爬取到的电影数据,逐行写入CSV文件。运行代码后,将会生成一个包含排名、电影名称和评分信息的CSV文件。
结语
通过本文的介绍,读者可以初步了解Python爬虫的实战经验及相关技术,为进一步学习和应用爬虫技术打下基础。