坦桑尼亚奥杜威峡谷能人 2018-10-08 00:57 采纳率: 0%
浏览 5017
已结题

scrapy设置代理 IP 无法爬去

middewares里:

class ProxyMiddleWare(object):
def process_request(self, request, spider):
proxy = random.choice(PROXIES)

  1. if proxy['user_passwd'] is None:
  2. # if 'user_passwd' not in proxy:
  3. # 没有代理账户验证的代理使用方式
  4. print('---------------------->>> ', proxy['ip_port'])
  5. request.meta['proxy'] = "http://" + proxy['ip_port']
  6. # request.meta['proxy'] = 'http://122.235.168.162:8118'
  7. else:
  8. # 对账户密码进行base64编码转换
  9. base64_userpasswd = base64.b64encode(proxy['user_passwd'].encode())
  10. # 对应到代理服务器的信令格式里
  11. request.headers['Proxy-Authorization'] = 'Basic ' + base64_userpasswd.decode()
  12. request.meta['proxy'] = "http://" + proxy['ip_port']

setting里:

PROXIES = [
# {'ip_port': '61.175.192.2:35420'},
# {'ip_port': '221.234.192.10:8010'},
{'ip_port': '221.224.49.194:51127', 'user_passwd': ''},
# {"ip_port": "121.41.8.23:16816", "user_passwd": "morganna_mode_g:ggc22qxp"},

# {'ip_port': '122.224.249.122:8088', 'user_passwd': 'user4:pass4'},

]


DOWNLOADER_MIDDLEWARES = {

'taobao.middlewares.TaobaoDownloaderMiddleware': 543,

'taobao.middlewares.SeleniumMiddleware': 543,

'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 751,

  1. 'taobao.middlewares.ProxyMiddleWare': 750,
  2. 'taobao.middlewares.RandomUserAgent': 400,

}

我是这么设置的,而且这个IP用request测试过,返回状态码也是200,但在scrapy里不能正常抓取数据,请教各位大神指点下

展开全部

  • 写回答

5条回答 默认 最新

  • lyhsdy 2018-10-08 01:12
    关注

    1.可以尝试测试下你的代理是否可以对其他网站爬取,如果无效,说明你的代理有问题
    2.淘宝网对一般的代理无效,可以尝试爬取 https://www.whatismybrowser.com/ 网址,找到IP Address 是否你真是IP还是代理的IP

    评论
  • threenewbee 2018-10-08 03:54
    关注

    你的代理服务器可能是透明代理,这类代理会向服务器报告你的客户端ip(通过x-forward-for),从而使得服务器的反爬虫机制不让你爬。你需要找匿名代理。

    评论
  • 最好真好 2019-03-04 04:24
    关注

    if isinstance(agent, self._TunnelingAgent):
    headers.removeHeader(b'Proxy-Authorization')

                scrapy中把Proxy-Authorization'这删掉了,不知道是这个原因不
    
    评论
  • JennieGerhardt 2020-03-25 15:17
    关注

    request.meta['http_proxy'] = proxy

    https://www.cnblogs.com/blackworm/p/11329228.html

    评论
  • 普通网友 企业官方账号 2020-07-10 07:15
    关注

    如果设置了ip不能正常工作,如果觉得是ip原因的话,我们可以先从ip类型分析一下,透明代理,普匿代理(普通匿名代理)和高匿代理(高级匿名代理)。这三种代理虽然匿名程度不同,但是都有其适用的范围,我们可以根据自己的实际情况进行选择和使用。其中高匿代理的适用范围最广,例如网络爬虫配合(ipidea)。高匿代理才能保证工作效率。

    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 宝塔面板一键迁移使用不了
  • ¥15 求一个按键录像存储到内存卡的ESP32CAM代码
  • ¥15 如何单独修改下列canvas推箱子代码target参数?,插入图片代替其形状,就是哪个绿色的圆圈每关用插入的图片替代
  • ¥20 四叉树的创建和输出问题
  • ¥15 javaweb连接数据库,jsp文件加载不出来
  • ¥15 matlab关于高斯赛德尔迭代的应用编撰。(相关搜索:matlab代码|迭代法)
  • ¥15 损失匹配问题,求解答
  • ¥15 3500常用汉字书法体检测数据集下载
  • ¥15 odoo17在制造模块或采购模块良品与次品如何分流和在质检模块下如何开发
  • ¥15 Qt音乐播放器的音乐文件相对路径怎么写
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部