python爬虫中的IP代理的使用

概念:代理服务器
代理服务器的作用
fiddler就是一个典型的代理服务器的抓包工具。
代理服务器就是用来转发请求和响应。可以让代理服务器转发请求从而更换请求的原始ip地址。
代理和爬虫之间的关联?
爬虫程序可能会在短时间内对指定的服务器发起高频的请求。服务器端会将该高频请求的ip禁掉。
代理的匿名度
透明:对方服务器知道你使用了代理也知道你的真实ip
匿名:知道你使用了代理,但是不知道你的真是ip
高匿:不知道你使用了代理,更不知道你的真是ip
代理的类型
http:只能代理http协议的请求
https:代理https协议的请求
如何获取代理服务器
免费:几乎不能用
西祠代理
快代理
goubanjia
付费:
代理精灵:http://http.zhiliandaili.cn/

对https://www.xicidaili.com/nn/3网站进行高频的请求发送,让其将本机ip禁掉,使用代理机制解禁

from lxml import etree

url = 'https://www.xicidaili.com/nn/%d'
all_data = []
for page in range(1,30):
    new_url = format(url%page)
    page_text = requests.get(url=new_url,headers=headers).text
    tree = etree.HTML(page_text)
    #在xpath表达式中不可以出现tbody标签,否则会出问题
    tr_list = tree.xpath('//*[@id="ip_list"]//tr')[1:]
    for tr in tr_list:
        ip_addr = tr.xpath('./td[2]/text()')[0]
        all_data.append(ip_addr)
print(len(all_data))

对https://www.xicidaili.com/nn/3网站进行高频的请求发送,让其将本机ip禁掉,使用代理机制解禁

#1.构建一个代理池
ips_list = []
# 此处url为在智联代理购买ip后生成的API连接
url = 'http://t.11jsq.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=1&fa=0&fetch_key=&groupid=0&qty=52&time=1&pro=&city=&port=1&format=html&ss=5&css=&dt=1&specialTxt=3&specialJson=&usertype=2'
page_text = requests.get(url=url,headers=headers).text
tree = etree.HTML(page_text)
ip_list = tree.xpath('//body//text()')
for ip in ip_list:
    dic = {'https':ip}
    ips_list.append(dic)
ips_list

使用proxies={‘http’:‘ip:port’}的形式把代理ip写入到headers之后

import random
#使用代理池操作
url = 'https://www.xicidaili.com/nn/%d'
all_data = []
for page in range(1,30):
    new_url = format(url%page)
                                                   
    page_text = requests.get(url=new_url,headers=headers,proxies=random.choice(ips_list)).text
    tree = etree.HTML(page_text)
    #在xpath表达式中不可以出现tbody标签,否则会出问题
    tr_list = tree.xpath('//*[@id="ip_list"]//tr')[1:]
    for tr in tr_list:
        ip_addr = tr.xpath('./td[2]/text()')[0]
        all_data.append(ip_addr)
print(len(all_data))

这样便成功的使用了代理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值