Python爬虫所需的常用库_python爬数需要用到什么库

90 阅读3分钟

Beautiful Soup是一个Python库,用于从HTML或XML文档中提取数据。它提供了一套简单而灵活的API,使得解析网页变得非常容易。以下是一个使用Beautiful Soup解析HTML的例子:

from bs4 import BeautifulSoup

html_doc = """
<html>
<head>
<title>Example</title>
</head>
<body>
<div class="content">
<h1>Welcome to Example</h1>
<p>Some text here</p>
</div>
</body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.title.text)
print(soup.find('div', {'class': 'content'}).h1.text)

Beautiful Soup还提供了其他功能,如查找元素、提取属性、处理文本等。

2.2. lxml

lxml是一个高性能的Python库,用于处理XML和HTML文档。它提供了一个简洁的API,使得解析和修改文档变得容易。以下是一个使用lxml解析HTML的例子:

from lxml import etree

html_doc = """
<html>
<head>
<title>Example</title>
</head>
<body>
<div class="content">
<h1>Welcome to Example</h1>
<p>Some text here</p>
</div>
</body>
</html>
"""

tree = etree.HTML(html_doc)
print(tree.xpath('//title/text()'))
print(tree.xpath('//div[@class="content"]/h1/text()'))

lxml还提供了其他功能,如遍历文档、提取属性、处理命名空间等。

3. 数据存储库

数据存储库用于将爬取的数据存储到本地或远程数据库中,以备后续处理和分析。以下是一些常用的数据存储库。

3.1. SQLite

SQLite是一个轻量级的关系型数据库,它使用单个文件存储整个数据库,非常适合小规模的数据存储和查询。以下是一个使用SQLite存储数据的例子:

import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

cursor.execute('''
 CREATE TABLE IF NOT EXISTS data
 (id INTEGER PRIMARY KEY AUTOINCREMENT,
 title TEXT,
 content TEXT)
''')

cursor.execute('INSERT INTO data (title, content) VALUES (?, ?)', ('Example', 'Some text here'))

conn.commit()
conn.close()

SQLite还提供了其他功能,如查询数据、更新数据、事务处理等。

3.2. MongoDB

MongoDB是一个NoSQL数据库,它使用文档存储数据,非常适合大规模和非结构化的数据存储。以下是一个使用MongoDB存储数据的例子:

from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017/')
db = client['example']
collection = db['data']

data = {'title': 'Example', 'content': 'Some text here'}
collection.insert_one(data)

MongoDB还提供了其他功能,如查询数据、更新数据、索引、聚合操作等。

4. 其他常用库

除了上述的网络请求库、解析库和数据存储库,还有许多其他常用的库可以加强爬虫的功能。

  • Scrapy-Redis:一个基于Redis的分布式爬虫框架,可以实现分布式爬虫的调度和队列管理。
  • Selenium:一个用于自动化浏览器操作的库,用于处理JavaScript渲染的网页。
  • Pandas:一个用于数据分析和处理的库,可以对爬取的数据进行清洗、转换和分析。
  • NumPy:一个用于科学计算和数值操作的库,可以用于对爬取的数据进行统计和数值计算。
  • Scikit-learn:一个用于机器学习和数据挖掘的库,可以对爬取的数据进行建模和预测。

案例

当然,请看下面的三个案例:

案例1:使用Requests库获取网页内容

import requests

# 发送GET请求
response = requests.get("https://www.example.com")
print(response.text)

上述代码使用Requests库发送GET请求,并打印出获取到的网页内容。

案例2:使用Beautiful Soup解析HTML

from bs4 import BeautifulSoup

html_doc = """
<html>
<head>
<title>Example</title>
</head>
<body>
<div class="content">
<h1>Welcome to Example</h1>
<p>Some text here</p>
</div>
</body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.title.text)
print(soup.find('div', {'class': 'content'}).h1.text)

上述代码使用Beautiful Soup解析HTML文档,并提取出标题和内容。

案例3:使用SQLite存储数据

import sqlite3

# 连接数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 创建表格
cursor.execute('''
 CREATE TABLE IF NOT EXISTS data
 (id INTEGER PRIMARY KEY AUTOINCREMENT,
 title TEXT,
 content TEXT)
''')


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/240930c692a24737a26e6678886c8c39~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771407163&x-signature=l20Kd6dHZ9eqwIwyGYKPZQ3txkY%3D)

**感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:**



① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)



**了解详情:https://docs.qq.com/doc/DSnl3ZGlhT1RDaVhV**