爬虫: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)
相关推荐
深蓝电商API2 小时前
Scrapy+Rredis实现分布式爬虫入门与优化
分布式·爬虫·scrapy
sugar椰子皮1 天前
【web补环境篇-0】document.all
爬虫
interception1 天前
js逆向之京东原型链补环境h5st
javascript·爬虫·网络爬虫
半路_出家ren1 天前
17.python爬虫基础,基于正则表达式的爬虫,基于BeautifulSoup的爬虫
网络·爬虫·python·网络协议·正则表达式·网络爬虫·beautifulsoup
我想吃烤肉肉2 天前
Playwright中page.locator和Selenium中find_element区别
爬虫·python·测试工具·自动化
lbb 小魔仙2 天前
【Python】零基础学 Python 爬虫:从原理到反爬,构建企业级爬虫系统
开发语言·爬虫·python
努力变大白2 天前
借助AI零基础快速学会Python爬取网页信息-以天眼查爬虫为例
人工智能·爬虫·python
AC赳赳老秦2 天前
Unity游戏开发实战指南:核心逻辑与场景构建详解
开发语言·spring boot·爬虫·搜索引擎·全文检索·lucene·deepseek