获课:quangneng.com/5365/
Python 版本说明与爬虫库介绍
1. Python 版本说明
1.1 Python 2 与 Python 3 的主要区别
Python 2 和 Python 3 是 Python 语言的两个主要版本,它们之间存在一些不兼容的差异。以下是它们的主要区别:
- print 函数:
- Python 2: print "Hello, World!"
- Python 3: print("Hello, World!")
- 整数除法:
- Python 2: 5 / 2 结果为 2
- Python 3: 5 / 2 结果为 2.5
- Unicode 支持:
- Python 2: 字符串默认是 ASCII,需要使用 u"..." 表示 Unicode 字符串。
- Python 3: 字符串默认是 Unicode。
- xrange 和 range:
- Python 2: xrange 生成一个迭代器,range 生成一个列表。
- Python 3: xrange 被移除,range 生成一个迭代器。
- 异常处理:
- Python 2: except Exception, e:
- Python 3: except Exception as e:
1.2 Python 3 的新特性
Python 3 引入了许多新特性和改进,以下是一些重要的更新:
- 类型注解: 支持函数参数和返回值的类型注解。
- 异步编程: 引入了 async 和 await 关键字,简化了异步编程。
- f-strings: 提供了一种更简洁的字符串格式化方法。
- 数据类: 使用 @dataclass 装饰器简化类的定义。
- 模块改进: 标准库中的许多模块进行了改进和优化。
1.3 版本选择建议
- 新项目: 建议使用 Python 3,因为它有更好的性能、更多的特性和更活跃的社区支持。
- 旧项目: 如果项目依赖于 Python 2 的库或代码,可以考虑迁移到 Python 3,或者继续使用 Python 2 直到迁移完成。
2. Python 爬虫库介绍
2.1 Requests
Requests 是一个简单易用的 HTTP 库,用于发送 HTTP 请求和处理响应。
- 特点:
- 简洁的 API,易于使用。
- 支持多种 HTTP 方法(GET、POST、PUT、DELETE 等)。
- 自动处理 cookies 和会话。
- 示例:
- python
- 复制
- import requests response = requests.get('https://www.example.com') print(response.text)
2.2 BeautifulSoup
BeautifulSoup 是一个用于解析 HTML 和 XML 文档的库,常用于从网页中提取数据。
- 特点:
- 支持多种解析器(如 lxml、html.parser)。
- 提供简单的方法遍历和搜索文档树。
- 支持修改文档内容。
- 示例:
- python
- 复制
- from bs4 import BeautifulSoup html_doc = """
The Dormouse's story
""" soup = BeautifulSoup(html_doc, 'html.parser') print(soup.title.string)
2.3 Scrapy
Scrapy 是一个强大的爬虫框架,用于快速、高效地抓取网站数据。
- 特点:
- 提供完整的爬虫解决方案,包括请求调度、数据提取和存储。
- 支持异步处理,高效抓取大量数据。
- 内置支持多种数据格式(如 JSON、CSV、XML)。
- 示例:
- python
- 复制
- import scrapy class MySpider(scrapy.Spider): name = 'example' start_urls = ['https://www.example.com'] def parse(self, response): yield { 'title': response.css('title::text').get(), }
2.4 Selenium
Selenium 是一个用于自动化浏览器操作的库,常用于处理 JavaScript 渲染的网页。
- 特点:
- 支持多种浏览器(如 Chrome、Firefox、Edge)。
- 可以模拟用户操作(如点击、输入、滚动)。
- 适用于需要与页面交互的复杂爬虫。
- 示例:
- python
- 复制
- from selenium import webdriver driver = webdriver.Chrome() driver.get('https://www.example.com') print(driver.title) driver.quit()
2.5 PyQuery
PyQuery 是一个类似于 jQuery 的库,用于解析和操作 HTML 文档。
- 特点:
- 提供类似 jQuery 的语法,易于使用。
- 支持链式调用,简化代码。
- 适用于快速提取和操作 HTML 元素。
- 示例:
- python
- 复制
- from pyquery import PyQuery as pq html_doc = """
The Dormouse's story
""" doc = pq(html_doc) print(doc('title').text())
结论
Python 提供了丰富的爬虫库和工具,适用于不同的爬虫需求。从简单的 HTTP 请求到复杂的浏览器自动化,开发者可以根据具体需求选择合适的工具。同时,随着 Python 3 的不断发展和优化,建议新项目优先使用 Python 3,以享受其带来的新特性和性能提升。希望本文能帮助你更好地理解 Python 的版本差异和爬虫库的选择。