python爬虫之ip代理

代理ip通常只能购买,免费的ip可用率极低

如果不是有短时间爬取巨量数据的需求,一般没必要使用代理服务器。毕竟可以通过随机睡眠降低对服务器的访问频次。同时,请不要使用我的url和Cookie!

"""
代理就是指代理服务器,代理服务器用来转发请求和响应。如果我们的爬虫在短时间内对同一个服务器发起的高频的请求,我们的ip就有可能被禁掉。
如果ip被禁,我们就可以使用代理服务器来转发请求。这样服务器接受到的请求对应的ip地址就是代理服务器的ip地址,而不是我们客户端的。
"""
import requests
from re import findall, S
from fake_useragent import UserAgent
from random import choice


# 封装一个代理池
ua = UserAgent()
url = 'http://localhost:63342/Python.learning/requests%E5%BA%93%E7%88%AC%E8%99%AB%E5%AD%A6%E4%B9%A0/%E4%BB%A3%E7%90%86%E6%B1%A0.html?_ijt=fmo1j72kp5geu6p0ujmb6dkks9&_ij_reload=RELOAD_ON_SAVE'              # 生成的api链接
headers = {
    'User-Agent': ua.random,
    'Cookie': 'Pycharm-2b3ad7cf=59764cdb-ddc8-4f8c-8ded-b8f1e2f469e3'
}
page_text = requests.get(url=url, headers=headers).text
page_proxy = findall(r'"(.*?:.*?)"', page_text, S)  # 妈的,提取个ip还真不容易,我现在也不知道为什么(<body>|<br>)不行
http_proxy = []           # 代理的列表
for proxy in page_proxy:
    dic = {
        'https': proxy
    }
    http_proxy.append(dic)

# 使用代理ip爬取数据
ips = []    # 将获取到的ip都装到这里
new_headers = {
    'User-Agent': ua.random,
    'Cookie': 'channelid=bdtg_a12_a12a1; sid=1704121510643509; __51vcke__K3h4gFH3WOf3aJqX=b1b71dbd-1a63-5f64-9114-c0f21bd06f75; __51vuft__K3h4gFH3WOf3aJqX=1704121511916; _gcl_au=1.1.2047629864.1704862104; _gid=GA1.2.108763967.1704862104; __51uvsct__K3h4gFH3WOf3aJqX=2; _ga_DC1XM0P4JL=GS1.1.1704862103.1.1.1704862327.60.0.0; _ga=GA1.2.245898219.1704121512; _gat=1; __vtins__K3h4gFH3WOf3aJqX=%7B%22sid%22%3A%20%222054bc42-ee9f-5c78-8c2d-3466f7b39616%22%2C%20%22vd%22%3A%203%2C%20%22stt%22%3A%20224459%2C%20%22dr%22%3A%20195773%2C%20%22expires%22%3A%201704864128544%2C%20%22ct%22%3A%201704862328544%7D'
}
for page in range(1, 11):
    url = f'https://www.kuaidaili.com/free/inha/{page}'
    content = requests.get(url=url, headers=new_headers, proxies=choice(http_proxy)).text
    # 需要注意上面的proxies是不能用的,只是作为一个模版示范。实际ip还是需要花钱购买
    page_ip = findall(r'<td data-title="IP">(.*?)</td>', content)
    page_port = findall(r'<td data-title="PORT">(\d*)</td>', content)
    for index in range(len(page_ip)):
        get_proxy = f'{page_ip[index]}: {page_port[index]}'
        ips.append(get_procy)

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python爬虫代理IP代理是一种在使用Python爬虫时,通过使用代理IP来隐藏真实的IP地址,以防止被目标网站封禁或限制访问。这样可以有效地绕过网站的反爬取技术,并且可以实现高强度、高效率地爬取网页信息而不给网站服务器带来过大的压力。 为了实现代理IP代理,可以按照以下步骤进行操作: 1. 首先,需要获取稳定的代理IP列表。可以参考相关博客或网站,如《python爬虫设置代理ip池——方法(二)》,从中购买或获取代理IP。 2. 接下来,在Python代码中调用代理IP。可以使用以下代码获取代理IP列表并随机选择一个IP作为代理: ```python if __name__ == '__main__': url = 'http://www.xicidaili.com/nn/' ip_list = get_ip_list(url) proxies = get_random_ip(ip_list) print(proxies) ``` 其中,`get_ip_list()`函数用于获取代理IP列表,`get_random_ip()`函数用于从列表中随机选择一个IP作为代理。 通过以上步骤,就可以使用代理IP实现Python爬虫的代理IP代理功能了。这样可以有效地绕过网站的反爬取技术,并且提高爬取效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python爬虫设置代理ip池——方法(一)](https://blog.csdn.net/weixin_40372371/article/details/80154707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值