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

scrapy设置代理 IP 无法爬去

middewares里:

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

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

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

}

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

  • 写回答

5条回答 默认 最新

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 三菱变频器模块怎么检测触发
  • ¥30 求一下解题思路,完全不懂。
  • ¥30 关于#硬件工程#的问题:求一下解题思路
  • ¥15 运筹学对偶单纯行法构造扩充问题
  • ¥20 XP系统的老电脑一开机就提示找不到rundll.exe,付费求解
  • ¥15 milvus查询出来的score怎么转换成0-1之间的相似性
  • ¥15 lvgl V9移植到linux开发板
  • ¥15 VB.net中在窗体中创建一个button控件来关闭窗体,但是提示错误,我该怎么办
  • ¥15 网上下载好的程序但是arduinoIDE编程报错,运行不了,哪里出错了,能具体给改一下吗
  • ¥15 Sharepoint JS开发 付费技术指导