Python实现简单爬虫:BeautifulSoup与Scrapy 随着互联网的不断发展,网络爬虫越来越成为一个重要的工具。Python作为一门脚本语言,具有简单易学、开发效率高等优点,成为了网络爬虫的首选语言之一。本文将介绍两种Python实现简单爬虫的库,即BeautifulSoup和Scrapy。 一、BeautifulSoup BeautifulSoup是Python的一个HTML或XML的解析库,它可以用来从HTML或XML文件中提取数据,是一个常用的网络爬虫工具。BeautifulSoup内置了解析器,如Python标准库中的html.parser、 lxml解析器、html5lib等,用户可以根据需要自由选择。 1. 安装BeautifulSoup 使用pip命令进行安装: ``` pip install beautifulsoup4 ``` 2. 简单使用 使用requests库获取网页源代码,然后利用BeautifulSoup进行解析,最后获取想要的数据。比如我们想获取京东商品页面的商品名称和价格: ``` import requests from bs4 import BeautifulSoup url = 'https://item.jd.com/100008348542.html' headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') name = soup.find('div', class_='sku-name').text.strip() price = soup.find('span', class_='price J-p-100008348542').text.strip() print(name, price) ``` 这里使用requests库获取京东商品页面的源代码,然后用BeautifulSoup进行解析,最后使用find方法获取商品名称和价格。 二、Scrapy Scrapy是一个用于抓取网站并提取结构化数据的应用框架。 它可以用于从互联网上抓取数据,也可以用于提取数据和存储数据。Scrapy使用了Twisted异步网络框架,这使得其可以处理大量的并发请求,从而提高了爬虫的效率。 1. 安装Scrapy 使用pip命令进行安装: ``` pip install scrapy ``` 2. 简单使用 Scrapy框架提供命令行工具scrapy生成项目模板,我们可以使用该模板快速生成一个爬虫项目,并在项目中定义爬虫规则。比如我们要抓取豆瓣电影Top250的电影名称和评分: ``` import scrapy class DoubanSpider(scrapy.Spider): name = 'douban' allowed_domains = ['movie.douban.com'] start_urls = ['https://movie.douban.com/top250'] def parse(self, response): items = response.xpath('//div[@class="hd"]') for item in items: title = item.xpath('./a/span[@class="title"]/text()').extract_first() rating = item.xpath('./div[@class="star"]/span[@class="rating_num"]/text()').extract_first() print(title, rating) ``` 首先定义一个类DoubanSpider继承自scrapy.Spider类,然后定义了三个属性:name表示爬虫的名称,allowed_domains表示允许爬取的域名,start_urls表示起始爬取的URL。在类中定义了一个方法parse,该方法处理从URL获取的页面信息,使用XPath从页面中提取需要的数据,并使用print方法输出。 三、总结 BeautifulSoup和Scrapy是两种Python实现简单爬虫的常用库,它们都能够进行网页解析和数据提取。如果需要简单的网页解析和数据提取,可以使用BeautifulSoup;如果需要对网站进行数据爬取,可以选择使用Scrapy框架。