Python爬虫——入门爬取网页数据

前言

本文介绍Python爬虫入门教程,主要讲解如何使用Python爬取网页数据,包括基本的网页数据抓取、使用代理IP和反爬虫技术。

一、Python爬虫入门

Python是一门非常适合爬虫的编程语言。它具有简单易学、代码可读性高等优点,而且Python爬虫库非常丰富,使用Python进行爬虫开发非常方便。

我们先来看一个简单的Python爬虫程序,爬取一个网页的标题:

python 复制代码
import requests
from bs4 import BeautifulSoup

# 发送HTTP请求
url = 'http://www.baidu.com/'
response = requests.get(url)

# 解析HTML文档
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.title

# 输出结果
print('网页标题:', title.string)

在这个程序中,我们使用了requests库来发送HTTP请求,并使用BeautifulSoup库来解析HTML文档。通过这两个库,我们可以轻松地获取网页数据,进而进行数据分析和处理。

二、使用代理IP

有些网站可能会封禁某个IP地址,这时我们需要使用代理IP来隐藏真实IP地址。使用代理IP的方法很简单,只需向requests库的get()或post()方法传递proxies参数即可。

下面是一个使用代理IP的Python爬虫程序,爬取一个网站的代理IP:

python 复制代码
import requests
from bs4 import BeautifulSoup

# 设置代理IP
proxies = {
  'http': 'http://127.0.0.1:8080',
  'https': 'http://127.0.0.1:8080'
}

# 发送HTTP请求
url = 'http://www.zdaye.cn/freeproxy.html'
response = requests.get(url, proxies=proxies)

# 解析HTML文档
soup = BeautifulSoup(response.text, 'html.parser')
trs = soup.select('.table tbody tr')

# 输出结果
for tr in trs:
    tds = tr.select('td')
    ip = tds[0].string
    port = tds[1].string
    print('{}:{}'.format(ip, port))

在这个程序中,我们设置了一个代理IP,然后使用requests库发送HTTP请求,传递了proxies参数。接着我们解析HTML文档,使用BeautifulSoup库找到了代理IP,并输出了结果。

三、反爬虫技术

有些网站为了防止被爬虫抓取,会采取一些反爬虫技术,如设置限流、验证码等。为了绕过这些反爬虫技术,我们需要使用一些技巧。

  1. 间隔时间

我们可以通过设置间隔时间来减小对目标网站的压力,缓解反爬虫措施带来的影响。代码实现如下:

python 复制代码
import requests
import time

# 发送HTTP请求
url = 'http://www.baidu.com/'
while True:
    response = requests.get(url)
    print(response.text)
    time.sleep(5)  # 每隔5秒钟发送一次请求

在这段代码中,我们使用了time库来让程序等待5秒钟,然后再继续发送HTTP请求。

  1. 随机UA

有些网站会根据User-Agent来判断是否是爬虫程序,我们可以通过随机User-Agent的方法,来让我们的爬虫程序更难被发现。代码实现如下:

python 复制代码
import requests
from fake_useragent import UserAgent

# 获取随机User-Agent
ua = UserAgent()
headers = {
    'User-Agent': ua.random
}

# 发送HTTP请求
url = 'http://www.baidu.com/'
response = requests.get(url, headers=headers)
print(response.text)

在这段代码中,我们使用了fake_useragent库来生成随机的User-Agent,然后将其设置到HTTP请求的headers中。

  1. 使用Cookies

有些网站会根据用户的Cookies来判断是否是爬虫程序,我们可以通过获取网站的Cookies,然后将其设置到我们的爬虫程序中,来伪装成正常用户。代码实现如下:

python 复制代码
import requests

# 发送HTTP请求
url = 'http://www.baidu.com/'
response = requests.get(url)

# 获取Cookies
cookies = response.cookies

# 设置Cookies
headers = {
    'Cookies': cookies
}

# 发送HTTP请求
url = 'http://www.baidu.com/'
response = requests.get(url, headers=headers)
print(response.text)

在这段代码中,我们先发送HTTP请求获取了网站的Cookies,然后将其设置到HTTP请求的headers中。

四、总结

本文介绍了Python爬虫入门教程,主要讲解了如何使用Python爬取网页数据,使用代理IP和反爬虫技术等技巧。通过学习本文,您可以轻松地掌握Python爬虫开发的基本技巧,从而更加高效地进行数据采集和处理。

相关推荐
坚持就完事了9 分钟前
正则表达式与Python的re模块
python·正则表达式
Alex艾力的IT数字空间10 分钟前
基于PyTorch和CuPy的GPU并行化遗传算法实现
数据结构·人工智能·pytorch·python·深度学习·算法·机器学习
keerduoba18 分钟前
EWCCTF2025 Tacticool Bin wp
python
a2006380121 小时前
ply(python版本的flex/bison or Lex/Yacc)
python
wokaoyan19811 小时前
逻辑推演题——谁是骗子
python
九年义务漏网鲨鱼1 小时前
利用AI大模型重构陈旧代码库 (Refactoring Legacy Codebase with AI)
python
滑水滑成滑头1 小时前
**标题:发散创新:智能交通系统的深度探究与实现**摘要:本文将详细
java·人工智能·python
闭着眼睛学算法1 小时前
【双机位A卷】华为OD笔试之【哈希表】双机位A-跳房子I【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
java·c语言·c++·python·算法·华为od·散列表
无限码力1 小时前
华为OD技术面真题 - Python开发 - 2
python·华为od·华为od技术面真题·华为od技术面八股·华为od技术面python八股·华为od面试python真题·华为odpython八股
九皇叔叔3 小时前
Java循环结构全解析:从基础用法到性能优化(含经典案例)
java·开发语言·python