在当今信息爆炸的时代,网络数据已经成为我们获取知识、了解世界的重要途径。而爬虫编程作为从互联网上获取数据的一种有效手段,越来越受到广大编程爱好者的关注。下面,我将通过一些实战案例,带你轻松上手爬虫编程。
一、爬取网页数据
1. 使用Python的requests库
import requests
url = 'http://example.com'
response = requests.get(url)
print(response.text)
这个简单的例子展示了如何使用Python的requests库获取网页内容。通过访问指定的URL,我们可以获取到该网页的HTML代码。
2. 使用BeautifulSoup解析HTML
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.text)
在这个例子中,我们使用BeautifulSoup库解析HTML代码,并获取网页标题。
二、爬取动态网页数据
1. 使用Selenium模拟浏览器行为
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://example.com')
print(driver.title)
Selenium是一个用于Web应用程序测试的工具,也可以用来爬取动态网页数据。在这个例子中,我们使用Selenium模拟浏览器行为,获取动态网页的标题。
2. 使用Pyppeteer爬取JavaScript渲染的页面
import asyncio
from pyppeteer import launch
async def crawl():
browser = await launch()
page = await browser.newPage()
await page.goto('http://example.com')
print(await page.title())
await browser.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(crawl())
Pyppeteer是一个使用Python编写的Chrome或Chromium的自动化控制库,可以用来爬取JavaScript渲染的页面。
三、爬取数据存储
1. 使用Pandas存储数据
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)
在这个例子中,我们使用Pandas库将爬取到的数据存储到DataFrame中,方便后续处理和分析。
2. 使用SQLite数据库存储数据
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('''CREATE TABLE people (name text, age integer)''')
c.execute("INSERT INTO people VALUES ('Alice', 25)")
conn.commit()
conn.close()
在这个例子中,我们使用SQLite数据库存储爬取到的数据,并通过SQL语句进行插入操作。
四、实战案例:爬取豆瓣电影排行榜
1. 确定目标网址
首先,我们需要确定要爬取的豆瓣电影排行榜的网址,例如:http://movie.douban.com/top250
2. 分析网页结构
通过查看网页源代码,我们可以发现电影排行榜的数据存储在表格中,每行代表一部电影的信息。
3. 编写爬虫代码
import requests
from bs4 import BeautifulSoup
url = 'http://movie.douban.com/top250'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.find_all('tr', class_='item')
for movie in movies:
title = movie.find('a').text
info = movie.find('span', class_='pl').text
print(title, info)
在这个例子中,我们使用requests和BeautifulSoup库爬取豆瓣电影排行榜的数据,并将电影名称和相关信息打印出来。
通过以上实战案例,相信你已经对爬虫编程有了初步的了解。当然,爬虫编程是一个不断学习和实践的过程,希望这些案例能帮助你更好地掌握爬虫编程技巧。
