Python爬虫学习笔记_DAY_19_Python爬虫之代理ip与代理池的使用介绍【Python爬虫】

p.s.高产量博主,点个关注💓不迷路!

目录

I.代理ip及其在爬虫中的使用方法

II.简易代理池


I.代理ip及其在爬虫中的使用方法

首先先介绍一下什么是代理ip地址:

代理IP地址:代理IP地址一般是说代理服务器的IP地址,就是说你的电脑先连接到代理IP,然后通过代理服务器上网,网页的内容 通过代理服务器,传回你自己的电脑。代理IP就是一个安全保障,这样一来暴露在公网的就是代理IP而不是你的IP了!

以上是对代理ip的介绍,通过介绍可以看出,我们通过代理ip能够防止自己的ip在爬取内容的时候暴露,这样一方面提高了保密性,最重要的点是通过代理ip,我们可以应对ip被封这一反爬机制了!

下面是使用代理ip的示例代码,代码中主要涉及到的知识点是handler处理器的使用,这一内容不了解的朋友可以参考这篇博客:

Python爬虫学习笔记_DAY_18_Python爬虫之handler处理器的使用【Python爬虫】_跳探戈的小龙虾的博客-CSDN博客

示例代码如下:

# urllib代理
import urllib.request

url = 'https://www.baidu.com/s?wd=ip'

headers = {
            'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
     }

proxies = {
    'http' : '40.83.102.86:80'
}
request = urllib.request.Request(url = url, headers = headers)


handler = urllib.request.ProxyHandler(proxies = proxies)

opener = urllib.request.build_opener(handler)

response = opener.open(request)

content = response.read().decode('utf-8')

with open('daili.html','w',encoding = 'utf-8') as fp:
    fp.write(content)

此时我们对比一下之前的handler处理器的基础使用代码,发现只有一个地方发生了变化:

handler = urllib.request.HTTPHandler()  =>  handler = urllib.request.ProxyHandler(proxies = proxies)

这句代码换成了新的ProxyHandler对象后,我们才能把ip地址作为参数传入(proxies是ip地址的变量)


II.简易代理池

有了代理ip的基本使用方法,我们可以继续研究一下代理池:

所谓代理池,就是很多的ip在一起的一个结构,在这个结构里,我们能够在每一次请求中使用不同的ip地址,从而减少同一个ip的使用频率,以降低ip被封掉的风险,对抗反爬机制!

下面展示了一个简易的代理池示例代码:

# 代理池的使用
import urllib.request
import random

proxies_pool = [
    { 'http' : '27.203.215.138:8060' },
    { 'http': '40.83.102.86:80' },
    {'http': '14.215.212.37:9168'}
]

proxies = random.choice(proxies_pool)

url = 'https://www.baidu.com/s?wd=ip'

headers = {
            'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
     }

request = urllib.request.Request(url = url,headers = headers)

handler = urllib.request.ProxyHandler(proxies = proxies)

opener = urllib.request.build_opener(handler)

response = opener.open(request)

content = response.read().decode('utf-8')

with open('dail2.html','w',encoding='utf-8') as fp:
    fp.write(content)

对比第一段代码,我们这里的区别在于ip地址有三个,组成了一个简单的代理池,我们通过random.choice(),从代理池这一字典对象随机一个ip地址而后传入handler对象的创建中,同上!🌟🌟🌟

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,这是一个关于Python爬虫获取新浪新闻信息的问题。首先,我们需要先了解一下爬虫的基本概念和工作原理。 爬虫是一种自动化程序,可以模拟人类对网站的访问并自动抓取数据。它可以通过网络上的URL链接来获取网页内容,并将其转换成结构化的数据,供后续的数据分析或其他用途。 下面是一个简单的Python爬虫程序,可以用来获取新浪新闻的信息: ```python import requests from bs4 import BeautifulSoup url = 'https://news.sina.com.cn/' r = requests.get(url) r.encoding = 'utf-8' soup = BeautifulSoup(r.text, 'html.parser') news_list = soup.find_all('a', class_='news-item') for news in news_list: print(news.text.strip()) print(news['href']) ``` 这个程序使用Python的requests库和BeautifulSoup库来获取新浪新闻的信息。首先,我们需要将新浪新闻的URL链接赋值给变量url,然后使用requests库来发送HTTP请求,获取网页内容。接着,我们需要使用BeautifulSoup库来解析网页内容,提取出我们需要的信息。在这个例子中,我们使用了find_all方法来查找所有class为news-item的a标签,并使用循环打印出每个新闻的标题和链接。 当然,这只是一个简单的例子,实际上,爬虫的应用非常广泛,可以用来获取各种类型的数据,例如文本、图像、音频等等。但是,请注意,爬虫使用需要遵守法律法规和道德规范,不要进行恶意攻击或侵犯他人隐私。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跳探戈的小龙虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值