在Python中,爬虫是一种应用广泛的技术,它可以帮助我们从网页上提取所需的数据。以下是7个简单的爬虫案例,供你参考和学习。
案例1:基本的网页爬虫
这个爬虫的功能是从一个网页抓取HTML内容。
import requests
url = 'http://example.com'
response = requests.get(url)
print(response.text) # 输出网页的HTML内容
案例2:提取网页标题
我们可以使用BeautifulSoup
库来解析HTML,并提取网页标题。
from bs4 import BeautifulSoup
import requests
url = 'http://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.title.string
print('网页标题:', title)
案例3:爬取图片
这个示例将爬取网站上的图片并保存到本地。
import os
import requests
from bs4 import BeautifulSoup
url = 'http://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
images = soup.find_all('img')
if not os.path.exists('images'):
os.makedirs('images')
for img in images:
img_url = img['src']
img_data = requests.get(img_url).content
img_name = os.path.join('images', img_url.split('/')[-1])
with open(img_name, 'wb') as handler:
handler.write(img_data)
案例4:网页数据表格提取
从一个HTML表格中提取数据并打印。
import requests
from bs4 import BeautifulSoup
url = 'http://example.com/table'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table')
for row in table.find_all('tr'):
cols = row.find_all('td')
data = [col.text.strip() for col in cols]
print(data)
案例5:使用代理爬虫
在爬取一些网站时可能会被封禁,可以使用代理。
import requests
url = 'http://example.com'
proxies = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.10:1080',
}
response = requests.get(url, proxies=proxies)
print(response.text)
案例6:使用登录爬虫
一些网站需要登录才能访问数据,我们需要模拟登录。
import requests
login_url = 'http://example.com/login'
data = {
'username': 'your_username',
'password': 'your_password'
}
session = requests.Session()
session.post(login_url, data=data)
protected_url = 'http://example.com/protected'
response = session.get(protected_url)
print(response.text)
案例7:抓取动态数据
使用Selenium
库抓取动态加载的网页数据。
from selenium import webdriver
driver = webdriver.Chrome() # 需要确保ChromeDriver已安装
driver.get('http://example.com/dynamic')
# 等待页面加载
driver.implicitly_wait(5) # 等待5秒
data = driver.find_element_by_id('dynamic_data').text
print(data)
driver.quit()
以上是7个简单的Python爬虫案例。这些示例展示了各种爬虫的基本用法,包括网页抓取、数据解析、图片下载、使用代理服务器、模拟登录及抓取动态内容等。要注意的是,在进行网络爬虫时,请遵循相关网站的robots.txt
规则和使用条款,避免给网站带来负担。同时,可以根据具体需求进行相应的扩展和修改。希望这些示例对你学习Python爬虫有帮助!