在数字化时代,爬虫编程已经成为一种必备技能。无论是数据分析师、网站开发者还是普通用户,掌握爬虫技术都能让你在信息获取和处理上更加得心应手。以下是一些实战案例,帮助你轻松入门爬虫编程。
一、爬取网页内容
1. 使用Python的requests库
import requests
url = 'https://www.example.com'
response = requests.get(url)
# 打印网页内容
print(response.text)
2. 使用BeautifulSoup解析网页
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# 查找标题
title = soup.find('title').text
print(title)
二、爬取图片
1. 使用requests库下载图片
import requests
url = 'https://www.example.com/image.jpg'
response = requests.get(url)
# 保存图片
with open('image.jpg', 'wb') as f:
f.write(response.content)
2. 使用Scrapy框架
import scrapy
class ImageSpider(scrapy.Spider):
name = 'images'
start_urls = ['https://www.example.com']
def parse(self, response):
image_urls = response.css('img::attr(src)').extract()
for image_url in image_urls:
yield {'image_url': image_url}
# 启动Scrapy爬虫
from scrapy.crawler import CrawlerProcess
process = CrawlerProcess()
process.crawl(ImageSpider)
process.start()
三、爬取动态网页内容
1. 使用Selenium模拟浏览器行为
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.example.com')
# 获取动态加载的内容
content = driver.page_source
print(content)
driver.quit()
2. 使用Scrapy中间件
# 在settings.py中添加以下配置
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
'example.middlewares.MyCustomMiddleware': 543,
}
# MyCustomMiddleware.py
class MyCustomMiddleware(object):
def process_request(self, request, spider):
# 模拟浏览器行为
request.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
四、爬取API数据
1. 使用requests库获取API数据
import requests
url = 'https://api.example.com/data'
response = requests.get(url)
# 打印API数据
print(response.json())
2. 使用Scrapy框架
# 在items.py中定义数据结构
class DataItem(scrapy.Item):
name = scrapy.Field()
age = scrapy.Field()
# 在pipelines.py中定义数据处理逻辑
class DataPipeline:
def process_item(self, item, spider):
# 处理数据
print(item['name'], item['age'])
return item
# 在settings.py中启用pipeline
ITEM_PIPELINES = {
'example.pipelines.DataPipeline': 300,
}
# 启动Scrapy爬虫
process = CrawlerProcess()
process.crawl(DataSpider)
process.start()
通过以上实战案例,相信你已经对爬虫编程有了初步的了解。在实际应用中,你可以根据自己的需求选择合适的工具和技术。祝你在爬虫编程的道路上越走越远!