登录  /  注册
博主信息
博文 4
粉丝 0
评论 0
访问量 27165
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
海外网站如何通过代理IP进行采集?
英俊的程序员
原创
2118人浏览过

海外网站如何通过代理IP进行采集?

我们在做爬虫的时候,经常会遇到这种情况,爬虫最初运行的时候,数据是可以正常获取的,一切看起来都那么的美好,然而,不一会儿,就可能会出现403 Forbidden , 然后你会打开网站看一眼,可能会看到”您的IP访问频率过高,请稍后重试“。 出现这种情况的时候,通常这种情况,我们会使用代理IP来隐藏自身IP,来实现大量抓取。国内的代理常用的产品多达几十种,而当我们需要爬取海外网站的时候,这些个代理是都不能用的,所以我们今天使用的是一款Ipidea的全球代理。

使用起来和国内的相差不大,可以根据需求,选在指定国家,或者全球混播,通过api接口调用,指定提取数量,也可以指定接口返回数据格式,有txt,json,html等,这里就以全球混播、json格式为例,获取代理,单次获取1个,python代码如下:

  1. import requests
  2. url = "http://tiqu.linksocket.com:81/abroad?num=1&type=2&pro=0&city=0&yys=0&port=1&flow=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=0&regions=www&n=0&f=1"
  3. resp = requests.get(url)
  4. # 成功获取到的数据为:{'code': 0, 'data': [{'ip': '47.74.232.57', 'port': 21861}], 'msg': '0', 'success': True}
  5. data = resp.json().get('data')[0]
  6. proxy = {
  7. "http": "http://%s:%d" % (data.get("ip"), data.get("port")),
  8. "https": "https://%s:%d" % (data.get("ip"), data.get("port"))
  9. }

在获取ip之前,我们要通过个人中心设置IP白名单,否则是无法获取到数据的。

把你本机公网填入保存即可(官方也提供了接口添加或删除白名单),若不知道公网IP为多少,可以通过百度搜索IP即可。

爬虫demo如下,这里以六度新闻为例:

  1. import requests
  2. url = "http://tiqu.linksocket.com:81/abroad?num=1&type=2&pro=0&city=0&yys=0&port=1&flow=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=0&regions=www&n=0&f=1"
  3. def get_proxy():
  4. """
  5. 获取代理
  6. """
  7. resp = requests.get(url)
  8. data = resp.json().get('data')[0]
  9. proxy = {
  10. "http": "http://%s:%d" % (data.get("ip"), data.get("port")),
  11. "https": "https://%s:%d" % (data.get("ip"), data.get("port"))
  12. }
  13. return proxy
  14. def download_html(url):
  15. """
  16. 获取url接口数据
  17. """
  18. resp = requests.get(url,proxies=get_proxy())
  19. return resp.json()
  20. def run():
  21. """
  22. 主程序
  23. :return:
  24. """
  25. url = "https://6do.news/api/tag/114?page=1"
  26. content = download_html(url)
  27. # 数据处理略
  28. if __name__ == '__main__':
  29. run()

数据如图:

前后端分离的接口,对于爬虫来说还是比较友好的,数据提取起来比较方便,这里就不做过多处理,根据需求提取数据即可。

如果在爬虫中挂不上代理,请检查是否添加白名单。

本次海外网站的采集教程到这里就结束了,详细交流欢迎与我联系。

本文章旨在用于交流分享,【未经允许,谢绝转载】

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学