赞
踩
Python爬虫是指利用Python编写程序从互联网上自动获取信息的技术。爬虫广泛应用于数据收集、价格监控、内容聚合、市场分析等领域。其基本原理是模拟浏览器发送HTTP请求获取网页数据,并通过解析HTML来提取所需的信息。
Python中有许多强大的爬虫库,最常用的两个库是requests
和BeautifulSoup
。
requests
库: 一个简单易用的HTTP库,用于发送HTTP请求。BeautifulSoup
库: 一个HTML解析库,用于从网页中提取数据。我们将编写一个简单的爬虫,从一个网页上提取数据。假设我们要爬取一个简单的网站,并从中提取标题和段落内容。
步骤1:安装所需库 首先,我们需要安装requests
和BeautifulSoup
库。可以使用以下命令安装:
- pip install requests
- pip install beautifulsoup4
步骤2:编写爬虫代码
- import requests
- from bs4 import BeautifulSoup
-
- # 目标URL
- url = "http://example.com"
-
- # 发送HTTP请求
- response = requests.get(url)
-
- # 检查请求是否成功
- if response.status_code == 200:
- # 解析HTML内容
- soup = BeautifulSoup(response.content, 'html.parser')
-
- # 提取标题
- title = soup.find('h1').text
- print(f"标题: {title}")
-
- # 提取段落内容
- paragraphs = soup.find_all('p')
- for idx, paragraph in enumerate(paragraphs, start=1):
- print(f"段落 {idx}: {paragraph.text}")
- else:
- print(f"请求失败,状态码: {response.status_code}")
代码解释:
requests
和BeautifulSoup
库。requests.get
方法发送请求并获取响应。BeautifulSoup
解析HTML内容。soup.find
方法查找标题标签并提取文本内容。soup.find_all
方法查找所有段落标签并提取文本内容。在实际的爬虫应用中,我们可能会遇到IP被封禁的情况,这时我们可以使用代理池来绕过封禁。代理池是指一组代理服务器的集合,通过轮换使用这些代理服务器,可以避免被目标网站封禁。
设置代理池的步骤:
步骤1:准备代理池 可以手动收集免费代理,也可以使用一些代理服务提供的API获取代理。
步骤2:编写使用代理池的爬虫代码
- import requests
- from bs4 import BeautifulSoup
- import random
-
- # 目标URL
- url = "http://example.com"
-
- # 代理池
- proxy_pool = [
- 'http://12.34.56.78:9100',
- 'http://23.45.67.89:9101',
- 'http://34.56.78.90:9102'
- ]
-
- # 随机选择一个代理
- proxy = random.choice(proxy_pool)
- proxies = {
- 'http': proxy,
- 'https': proxy
- }
-
- # 发送HTTP请求
- response = requests.get(url, proxies=proxies)
-
- # 检查请求是否成功
- if response.status_code == 200:
- # 解析HTML内容
- soup = BeautifulSoup(response.content, 'html.parser')
-
- # 提取标题
- title = soup.find('h1').text
- print(f"标题: {title}")
-
- # 提取段落内容
- paragraphs = soup.find_all('p')
- for idx, paragraph in enumerate(paragraphs, start=1):
- print(f"段落 {idx}: {paragraph.text}")
- else:
- print(f"请求失败,状态码: {response.status_code}")
代码解释:
random.choice
方法从代理池中随机选择一个代理。通过以上简单的例子,我们成功编写了一个基础的Python爬虫,并从网页中提取了标题和段落内容。同时,我们学习了如何使用代理池来绕过IP封禁。在接下来的文章中,我们将进一步探讨更多的爬虫技巧和高级应用。
Python爬虫是指利用Python编写程序从互联网上自动获取信息的技术。爬虫广泛应用于数据收集、价格监控、内容聚合、市场分析等领域。其基本原理是模拟浏览器发送HTTP请求获取网页数据,并通过解析HTML来提取所需的信息。
Python中有许多强大的爬虫库,最常用的两个库是requests
和BeautifulSoup
。
requests
库: 一个简单易用的HTTP库,用于发送HTTP请求。BeautifulSoup
库: 一个HTML解析库,用于从网页中提取数据。我们将编写一个简单的爬虫,从一个网页上提取数据。假设我们要爬取一个简单的网站,并从中提取标题和段落内容。
步骤1:安装所需库 首先,我们需要安装requests
和BeautifulSoup
库。可以使用以下命令安装:
- pip install requests
- pip install beautifulsoup4
步骤2:编写爬虫代码
- import requests
- from bs4 import BeautifulSoup
-
- # 目标URL
- url = "http://example.com"
-
- # 发送HTTP请求
- response = requests.get(url)
-
- # 检查请求是否成功
- if response.status_code == 200:
- # 解析HTML内容
- soup = BeautifulSoup(response.content, 'html.parser')
-
- # 提取标题
- title = soup.find('h1').text
- print(f"标题: {title}")
-
- # 提取段落内容
- paragraphs = soup.find_all('p')
- for idx, paragraph in enumerate(paragraphs, start=1):
- print(f"段落 {idx}: {paragraph.text}")
- else:
- print(f"请求失败,状态码: {response.status_code}")
代码解释:
requests
和BeautifulSoup
库。requests.get
方法发送请求并获取响应。BeautifulSoup
解析HTML内容。soup.find
方法查找标题标签并提取文本内容。soup.find_all
方法查找所有段落标签并提取文本内容。在实际的爬虫应用中,我们可能会遇到IP被封禁的情况,这时我们可以使用代理池来绕过封禁。代理池是指一组代理服务器的集合,通过轮换使用这些代理服务器,可以避免被目标网站封禁。
设置代理池的步骤:
步骤1:准备代理池 可以手动收集免费代理,也可以使用一些代理服务提供的API获取代理。
步骤2:编写使用代理池的爬虫代码
- import requests
- from bs4 import BeautifulSoup
- import random
-
- # 目标URL
- url = "http://example.com"
-
- # 代理池
- proxy_pool = [
- 'http://12.34.56.78:9100',
- 'http://23.45.67.89:9101',
- 'http://34.56.78.90:9102'
- ]
-
- # 随机选择一个代理
- proxy = random.choice(proxy_pool)
- proxies = {
- 'http': proxy,
- 'https': proxy
- }
-
- # 发送HTTP请求
- response = requests.get(url, proxies=proxies)
-
- # 检查请求是否成功
- if response.status_code == 200:
- # 解析HTML内容
- soup = BeautifulSoup(response.content, 'html.parser')
-
- # 提取标题
- title = soup.find('h1').text
- print(f"标题: {title}")
-
- # 提取段落内容
- paragraphs = soup.find_all('p')
- for idx, paragraph in enumerate(paragraphs, start=1):
- print(f"段落 {idx}: {paragraph.text}")
- else:
- print(f"请求失败,状态码: {response.status_code}")
代码解释:
random.choice
方法从代理池中随机选择一个代理。通过以上简单的例子,我们成功编写了一个基础的Python爬虫,并从网页中提取了标题和段落内容。同时,我们学习了如何使用代理池来绕过IP封禁。在接下来的文章中,我们将进一步探讨更多的爬虫技巧和高级应用。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。