代理(proxy)

  • 代理服务器:实现请求转发,从而可以实现更换请求的ip地址

  • 代理的匿名度:

    • 透明:服务器知道你使用了代理并且知道你的真实ip
    • 匿名:服务器知道你使用了代理,但是不知道你的真实ip
    • 高度匿名(高匿):服务器不知道你使用了代理,更不知道你的真实ip
  • 代理的类型:

    • http:该类型的代理只可以转发http协议的请求
    • https:只可以转发https协议的请求
  • requests请求中更换ip:

    在requests添加一个参数 proxies={'http/https':'ip:port'}

    import requests
    headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
    }
    url = 'https://www.baidu.com/s?wd=ip'
    #proxies={'http/https':'ip:port'}
    page_text = requests.get(url=url,headers=headers,proxies={'https':'1.197.203.187:9999'}).text
    with open('ip.html','w',encoding='utf-8') as fp:
    fp.write(page_text)
  • 免费代理ip的网站

  • 在爬虫中遇到ip被禁掉如何处理?

    • 使用代理
    • 构建一个代理池
    • 拨号服务器
  • 代理池构建

    #基于代理精灵构建一个ip池
    from lxml import etree
    all_ips = [] # 列表形式的代理池
    proxy_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' # 代理ip地址
    proxy_page_text = requests.get(url=proxy_url,headers=headers).text
    tree = etree.HTML(proxy_page_text)
    proxy_list = tree.xpath('//body//text()')
    for ip in proxy_list:
    dic = {'https':ip}
    all_ips.append(dic)
    all_ips import random #爬取西祠代理中的免费代理ip
    url = 'https://www.xicidaili.com/nn/%d'
    free_proxies = []
    for page in range(1,30):
    new_url = format(url%page)
    page_text = requests.get(new_url,headers=headers,proxies=random.choice(all_ips)).text
    tree = etree.HTML(page_text)
    tr_list = tree.xpath('//*[@id="ip_list"]//tr')[1:]#xpath表达式中不可以出现tbody
    for tr in tr_list:
    ip = tr.xpath('./td[2]/text()')[0]
    port = tr.xpath('./td[3]/text()')[0]
    t_type = tr.xpath('./td[7]/text()')[0] dic = {
    'ip':ip,
    'port':port,
    'type':t_type
    }
    free_proxies.append(dic)
    print('第{}页爬取完毕!!!'.format(page))
    print(len(free_proxies))

爬虫-ip代理的更多相关文章

  1. 第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用

    第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理 使用IP代理 ProxyHandler()格式化IP,第一个参数,请求目标可能是http或者https,对应设置build_opener ...

  2. 反反爬虫 IP代理

    0x01 前言 一般而言,抓取稍微正规一点的网站,都会有反爬虫的制约.反爬虫主要有以下几种方式: 通过UA判断.这是最低级的判断,一般反爬虫不会用这个做唯一判断,因为反反爬虫非常容易,直接随机UA即可 ...

  3. 八 web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用

    使用IP代理 ProxyHandler()格式化IP,第一个参数,请求目标可能是http或者https,对应设置build_opener()初始化IPinstall_opener()将代理IP设置成全 ...

  4. 设置python爬虫IP代理(urllib/requests模块)

    urllib模块设置代理 如果我们频繁用一个IP去爬取同一个网站的内容,很可能会被网站封杀IP.其中一种比较常见的方式就是设置代理IP from urllib import request proxy ...

  5. 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫

    前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,本文记录免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作 ...

  6. python之squid实现免费 IP代理 (windows win7 单机 本机 本地 正向代理 区分 HTTPS)

    0.目录 1.思路2.windows安装3.相关命令行4.简单配置和初步使用5.问题:squid是否支持HTTPS6.问题:配置多个代理条目,相同ip不同port报错7.问题:根据代理请求区分HTTP ...

  7. 打造IP代理池,Python爬取Boss直聘,帮你获取全国各类职业薪酬榜

    爬虫面临的问题 不再是单纯的数据一把抓 多数的网站还是请求来了,一把将所有数据塞进去返回,但现在更多的网站使用数据的异步加载,爬虫不再像之前那么方便 很多人说js异步加载与数据解析,爬虫可以做到啊,恩 ...

  8. python获取ip代理列表爬虫

    最近练习写爬虫,本来爬几张mm图做测试,可是爬到几十张的时候就会返回403错误,这是被网站服务器发现了,把我给屏蔽了. 因此需要使用代理IP.为了方便以后使用,我打算先写一个自动爬取ip代理的爬虫,正 ...

  9. 记一次企业级爬虫系统升级改造(六):基于Redis实现免费的IP代理池

    前言: 首先表示抱歉,春节后一直较忙,未及时更新该系列文章. 近期,由于监控的站源越来越多,就偶有站源做了反爬机制,造成我们的SupportYun系统小爬虫服务时常被封IP,不能进行数据采集. 这时候 ...

随机推荐

  1. 【基础知识】CPU原理之减法、乘法和除法

    中介绍了布尔逻辑.数学和电路的关系,我们也得到了与门.或门.非门.或非门.与非门.异或门等门电路以及一个加法器,并且了解了计算机是如何做加法的,这篇文章介绍一下计算机是如何做减法以及乘除法的. 0x0 ...

  2. Windows三种文件系统:NTFS、FAT32、FAT16的区别

    什么是文件系统? 文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构:即在磁盘上组织文件的方法.也指用于存储文件的磁盘或分区,或文件系统种类. 举个通俗的比喻,一块硬盘就像一个块空地,文件就 ...

  3. 常用的一些性能查询sql语句

    转至:https://blog.csdn.net/bosschen/article/details/84829912 --查看表锁 select * from sys.v_$sqlarea where ...

  4. oj教程--深度优先DFS

    深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法.

  5. 哈工大 信息安全实验 XSS跨站脚本攻击原理与实践

    XX大学XX学院 <网络攻击与防御> 实验报告 实验报告撰写要求 实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性. ...

  6. 分布式系统下的CAP定理

    本文参考EricBrewer博客加上自己的理解整理. CAP定理又被成为布鲁尔定理,是加州大学计算机科学家埃里克·布鲁尔提出来的猜想,后来被证明成为分布式计算领域公认的定理. CAP定义,在高并发的场 ...

  7. 反射、静态代理、动态代理(jdk、cglib)

    一.反射 反射在之前的文章中详细的解释过了,简单概括就是:可以动态的获取到一个类内部的所有的信息,动态的去创建对象和使用对象以及可以操作对象的属性和方法. 二.代理 首先解释一下代理:使用一个代理对象 ...

  8. Excel:替换表格中的0值

    替换时需要勾选"单元格匹配",否则会把所有单元格中的0字符都给替换掉

  9. 【计算机网络】TCP的三次握手与四次挥手

    今天讲一下TCP的三次握手与四次挥手 1.首先说TCP 协议的特点:TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠.有序.无丢失和不重复问题.TCP 是TCP/IP 体系中 ...

  10. Python中的os.environ系列的用法

    >>> import os >>> os.environ.keys() ['LC_NUMERIC', 'GOPATH', 'GOROOT', 'GOBIN', 'L ...