如何在Python Scrapy中设置代理

2024-10-01 22:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用了python2.7和scrapy1.3.0

我需要设置代理来访问网络

如何设置?在

这是我在parse中的脚本

if theurl not in self.ProcessUrls:
   self.ProcessUrls.append(theurl)
   yield scrapy.Request(theurl, callback=self.parse)

如果我需要确认爬网新是不重复怎么办?如果不重复需要爬网这个新的网址


Tags: inself网络脚本代理ifparserequest
2条回答

您必须设置http_proxyhttps_proxy环境变量。请参考:proxy for scrapy

我们可以使用以下方法:

request = Request(url="http://example.com")
request.meta['proxy'] = "host:port"
yield request

一个简单的实现如下:

^{pr2}$

如果要在初始状态下使用代理:

添加以下作为spider类字段

class MySpider(scrapy.Spider):
        name = "examplespider"
        allowed_domains = ["somewebsite.com"]
        start_urls = ['http://somewebsite.com/']
        custom_settings = {
        'HTTPPROXY_ENABLED': True
    }

然后使用start_requests()方法,如下所示:

    def start_requests(self):
        urls = ['example.com']
        for url in urls:
            proxy = 'some proxy'
            yield scrapy.Request(url=url, callback=self.parse, meta={'proxy': proxy})

    def parse(self, response):
        item = StatusCehckerItem()
        item['url'] = response.url
        return item

相关问题 更多 >

    热门问题