从零开始学爬虫:Python 爬虫入门指南(附实战案例)
49
0
0
0
从零开始学爬虫:Python 爬虫入门指南(附实战案例)
什么是爬虫?
网络爬虫,也称为网页蜘蛛或网络机器人,是一种自动程序,用于从互联网上收集信息。它可以访问网页,提取数据,并将其存储在数据库或其他数据存储中。爬虫广泛应用于各种领域,例如:
- **数据分析:**收集市场数据、竞争对手信息、舆情分析等
- **搜索引擎:**索引网页,构建网页数据库
- **价格监控:**跟踪商品价格变化
- **学术研究:**收集文献资料、构建数据集
- **机器学习:**收集训练数据
为什么选择 Python 进行爬虫?
Python 是进行网络爬虫开发的理想语言,因为它拥有以下优势:
- **简单易学:**Python 语法简洁易懂,入门门槛低
- **丰富的库:**Python 拥有大量的爬虫库,例如 requests、BeautifulSoup、Scrapy 等,可以轻松完成各种爬虫任务
- **强大的数据处理能力:**Python 拥有强大的数据处理能力,可以方便地对爬取的数据进行清洗、分析和可视化
Python 爬虫基础
1. requests 库
requests 库是 Python 中最常用的 HTTP 库,可以轻松地发送 HTTP 请求,获取网页内容。
import requests
url = 'https://www.example.com'
response = requests.get(url)
print(response.status_code) # 获取 HTTP 状态码
print(response.text) # 获取网页内容
2. BeautifulSoup 库
BeautifulSoup 库可以用于解析 HTML 和 XML 文档,可以方便地提取网页中的特定内容。
from bs4 import BeautifulSoup
html_content = response.text
soup = BeautifulSoup(html_content, 'html.parser')
title = soup.find('title').text
print(title)
3. Scrapy 库
Scrapy 是一个功能强大的爬虫框架,可以快速构建大型爬虫项目。它提供了强大的数据提取、数据存储和数据处理能力。
import scrapy
class MySpider(scrapy.Spider):
name = 'my_spider'
start_urls = ['https://www.example.com']
def parse(self, response):
for item in response.css('div.item'):
yield {
'title': item.css('h2 a::text').get(),
'link': item.css('h2 a::attr(href)').get()
}
爬虫实战案例:抓取豆瓣电影 Top 250
以下代码使用 requests 和 BeautifulSoup 库抓取豆瓣电影 Top 250 的电影名称和评分,并将数据存储在 CSV 文件中。
import requests
from bs4 import BeautifulSoup
import csv
url = 'https://movie.douban.com/top250'
# 发送 HTTP 请求,获取网页内容
response = requests.get(url)
# 解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')
# 找到电影列表
movie_list = soup.find('ol', class_='grid_view')
# 创建 CSV 文件
with open('douban_top250.csv', 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['电影名称', '评分']) # 写入表头
# 遍历电影列表,提取电影名称和评分
for movie in movie_list.find_all('li'):
title = movie.find('span', class_='title').text
rating = movie.find('span', class_='rating_num').text
writer.writerow([title, rating])
运行以上代码后,会在当前目录下生成一个名为 douban_top250.csv 的 CSV 文件,其中包含豆瓣电影 Top 250 的电影名称和评分。
总结
本文介绍了 Python 爬虫的基础知识,并通过一个实战案例演示了如何使用 requests 和 BeautifulSoup 库抓取豆瓣电影 Top 250 的数据。Python 爬虫是一个强大的工具,可以帮助我们从互联网上收集各种数据,并用于各种应用场景。
注意:
- 在进行爬虫时,请遵守网站的 robots.txt 协议,避免对网站造成过大的压力。
- 爬虫可能会受到网站的反爬措施,例如 IP 封禁、验证码等。
- 爬虫的应用存在道德和法律问题,请谨慎使用。
希望本文对您学习 Python 爬虫有所帮助!