爬虫:IP代理

  • 什么是代理

    • 代理服务器
  • 代理服务器的作用

    • 就是用来转发请求和响应
  • 在爬虫中为何需要使用代理?

    • 有些时候,需要对网站服务器发起高频的请求,网站的服务器会检测到这样的异常现象,则会讲请求对应机器的ip地址加入黑名单,则该ip再次发起的请求,网站服务器就不在受理,则我们就无法再次爬取该网站的数据。

    • 使用代理后,网站服务器接收到的请求,最终是由代理服务器发起,网站服务器通过请求获取的ip就是代理服务器的ip,并不是我们客户端本身的ip。

  • 代理的匿名度

    • 透明:网站的服务器知道你使用了代理,也知道你的真实ip

    • 匿名:网站服务器知道你使用了代理,但是无法获知你真实的ip

    • 高匿:网站服务器不知道你使用了代理,也不知道你的真实ip(推荐)

  • 代理的类型(重要)

    • http:该类型的代理服务器只可以转发http协议的请求

    • https:可以转发https协议的请求

  • 如何获取代理?

  • 如何使用代理?

    • 测试:访问如下网址,返回自己本机ip
python 复制代码
import requests
from lxml import etree
headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36',
}
url = 'http://www.cip.cc/'

page_text = requests.get(url,headers=headers).text
tree = etree.HTML(page_text)
text = tree.xpath('/html/body/div/div/div[3]/pre/text()')[0]
print(text.split('\n')[0])
  • 使用代理发起请求,查看是否可以返回代理服务器的ip
python 复制代码
import requests
from lxml import etree
headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36',
}
url = 'http://www.cip.cc/'

page_text = requests.get(url,headers=headers,proxies={'http':'121.234.12.62:4246'}).text
tree = etree.HTML(page_text)
text = tree.xpath('/html/body/div/div/div[3]/pre/text()')[0]
print(text.split('\n')[0])
  • 代理池

最新问政-阳光热线问政平台

python 复制代码
import request
from lxml import etree
import random
headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36',
}

def get_proxy_pool():
    p_url = '代理提取的url'
    page_text = requests.get(p_url).text
    proxy_list = page_text.split('\r\n')
    return proxy_list
proxy_list = get_proxy_pool() #获取了代理池(列表)

for page in range(1,100):
    url = 'https://wz.sun0769.com/political/index/politicsNewest?id=1&page=%d'%page
    page_text = requests.get(url,headers=headers,proxies={'https':random.choice(proxy_list)}).text
    tree = etree.HTML(page_text)
    ret = tree.xpath('/html/body/div[2]/div[3]/ul[2]/li[1]/span[3]/a/text()')[0]
    print(ret)
相关推荐
水w6 小时前
【Python爬虫】简单案例介绍1
开发语言·爬虫·python
水w12 小时前
【Python爬虫】简单介绍
开发语言·爬虫·python·beautifulsoup
大神薯条老师17 小时前
Python高级爬虫之JS逆向+安卓逆向1.4节:数据运算
爬虫·python·机器学习·数据分析·网络爬虫
q5673152317 小时前
使用Scrapy库结合Kotlin编写爬虫程序
爬虫·scrapy·kotlin
水w18 小时前
【Python爬虫】简单介绍2
开发语言·爬虫·python·beautifulsoup
小白学大数据18 小时前
Scrapy结合Selenium实现搜索点击爬虫的最佳实践
开发语言·chrome·爬虫·selenium·scrapy
小白学大数据1 天前
Python自动化爬虫:Scrapy+APScheduler定时任务
开发语言·爬虫·python·自动化
呆头呆脑~1 天前
阿里滑块 231 231纯算 水果滑块 拼图 1688滑块 某宝 大麦滑块 阿里231 验证码
javascript·爬虫·python·网络爬虫·wasm
昊昊该干饭了2 天前
数据采集爬虫三要素:User-Agent、随机延迟、代理ip
爬虫·网络协议·tcp/ip·网络爬虫