Scrapy框架如何配置Python爬虫使用代理?

2026-05-16 09:221阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计996个文字,预计阅读时间需要4分钟。

Scrapy框架如何配置Python爬虫使用代理?

文本中涉及的网站多以GG代替。Scrapy框架,Python爬虫爱好者应有所了解。Scrapy是一个爬虫框架,模块化程度高,可扩展性强,对相应模块进行开发和发展就能满足需求。

本文中所涉及的网站皆以GG代替。

scrapy框架,熟悉python爬虫的朋友们应该知道甚至有所了解,scrapy是一个爬虫框架,模块化程度高,可拓展性强,对相应的模块进行开发和拓展就能满足使用者想要得到的效果。

所以本次我就简单介绍下scrapy的使用和代理的配置。

一、scrapy的配置

说是配置,其实scrapy也没啥可配置的,因为他新建项目真的很简单,再你想要创建项目的目录下输入或者打开cmd输入:

scrapy startproject mySpider(你想要的项目名)

但是前提是,你得需要pip安装scrapy:

pip install scrapy

Scrapy框架如何配置Python爬虫使用代理?

当你pip安装好scrapy并且部署好scrapy项目之后,最基础的东西就搭建好了。

二、scrapy的使用

还是先看一下scrapy的目录结构吧家人们。

首先我先创建了一个叫做 scrapytest 的项目,目录结构如下:

从外到内,scrapy.cfg 是scrapy项目的配置文件。items.py定义数据结构,规定了你想存什么样的数据和数据类型。pipelines.py 正如其名管道文件,产生的数据类型再次做数据处理。setting.py 全局设置。 middlewares.py 中间件。spiders 自定爬虫规则。

首先创建一个spider:

scrapy genspider GGSpider GG.com

输入指令后会自动帮你创建一个spider文件:

查看里面的元素,name代表此项目的名字,allowed_domains 标识允许爬取的域名并过滤非此域名的链接,start_urls 待爬取url。

修改一下start_urls里面的链接,把GG.com/']
7.
8. def start_requests(self):
9. for url in self.starturl:
10. googleHeaders = {
11. "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
12. "authority": "www.GG.com",
13. "user-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36",
14. }
15. yield scrapy.Request(url,headers=googleHeaders)
16.
17. def parse(self, response):
18. print(response.text)

执行刚才编写好的spider:

scrapy crawl googleSpider

这个googleSpider就是刚才项目中的name,结果如下:

很显然,谷歌当然没法正常访问的,之后就引出下一个部分,scrapy使用代理。

三、Scrapy代理设置

scrapy添加代理访问有两种方式,一个是在中间件设置代理,第二个就是在spider中请求前添加代理。比较适合账户认证的代理方式。

3.1 中间件添加代理

首先在中间件middlewares.py中,在最后加入如下代码:

1. class ProxyMiddleware(object):
2. def process_request(self,request,spider):
3. entry = '{}:{}@{}:{}'.format("账户", "密码","host","port")
4. request.meta["proxy"] = entry

然后在setting.py中设置优先级:

1. DOWNLOADER_MIDDLEWARES = {
2. '你的项目名.middlewares.ProxyMiddleware': 100,
3. }

3.2 spider中设置代理

1. import scrapy
2.
3. class TestSpider(scrapy.Spider):
4. name = 'GGSpider'
5. allowed_domains = ['GG.com']
6. start_urls = ['GG.com/']
7.
8. def start_requests(self):
9. # 账密:
10. # 账密链接赋值给变量
11. entry = '{}-zone-custom:{}@proxy.ipidea.io:2334'.format("帐号", "密码")
12. # api
13. # entry = '{}'.format("api获取的ip代理")
14. # 传参meta迭代下一个方法
15. for url in self.starturl:
16. googleHeaders = {
17. "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
18. "authority": "www.GG.com",
19. "user-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36",
20. }
21. yield scrapy.Request(url,headers=GGHeaders,meta={"proxy":entry})
22.
23. def parse(self, response):
24. print(response.text)

我这里使用的是ipidea的代理,好的代理能帮助你更好的获取数据,高质量低延迟,而且新用户可以白嫖哦!

地址:​​www.ipidea.net​​

如果你要是访问GG的话,访问的过于频繁会出现429警告,建议不要高频访问,适当慢一点。

本文共计996个文字,预计阅读时间需要4分钟。

Scrapy框架如何配置Python爬虫使用代理?

文本中涉及的网站多以GG代替。Scrapy框架,Python爬虫爱好者应有所了解。Scrapy是一个爬虫框架,模块化程度高,可扩展性强,对相应模块进行开发和发展就能满足需求。

本文中所涉及的网站皆以GG代替。

scrapy框架,熟悉python爬虫的朋友们应该知道甚至有所了解,scrapy是一个爬虫框架,模块化程度高,可拓展性强,对相应的模块进行开发和拓展就能满足使用者想要得到的效果。

所以本次我就简单介绍下scrapy的使用和代理的配置。

一、scrapy的配置

说是配置,其实scrapy也没啥可配置的,因为他新建项目真的很简单,再你想要创建项目的目录下输入或者打开cmd输入:

scrapy startproject mySpider(你想要的项目名)

但是前提是,你得需要pip安装scrapy:

pip install scrapy

Scrapy框架如何配置Python爬虫使用代理?

当你pip安装好scrapy并且部署好scrapy项目之后,最基础的东西就搭建好了。

二、scrapy的使用

还是先看一下scrapy的目录结构吧家人们。

首先我先创建了一个叫做 scrapytest 的项目,目录结构如下:

从外到内,scrapy.cfg 是scrapy项目的配置文件。items.py定义数据结构,规定了你想存什么样的数据和数据类型。pipelines.py 正如其名管道文件,产生的数据类型再次做数据处理。setting.py 全局设置。 middlewares.py 中间件。spiders 自定爬虫规则。

首先创建一个spider:

scrapy genspider GGSpider GG.com

输入指令后会自动帮你创建一个spider文件:

查看里面的元素,name代表此项目的名字,allowed_domains 标识允许爬取的域名并过滤非此域名的链接,start_urls 待爬取url。

修改一下start_urls里面的链接,把GG.com/']
7.
8. def start_requests(self):
9. for url in self.starturl:
10. googleHeaders = {
11. "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
12. "authority": "www.GG.com",
13. "user-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36",
14. }
15. yield scrapy.Request(url,headers=googleHeaders)
16.
17. def parse(self, response):
18. print(response.text)

执行刚才编写好的spider:

scrapy crawl googleSpider

这个googleSpider就是刚才项目中的name,结果如下:

很显然,谷歌当然没法正常访问的,之后就引出下一个部分,scrapy使用代理。

三、Scrapy代理设置

scrapy添加代理访问有两种方式,一个是在中间件设置代理,第二个就是在spider中请求前添加代理。比较适合账户认证的代理方式。

3.1 中间件添加代理

首先在中间件middlewares.py中,在最后加入如下代码:

1. class ProxyMiddleware(object):
2. def process_request(self,request,spider):
3. entry = '{}:{}@{}:{}'.format("账户", "密码","host","port")
4. request.meta["proxy"] = entry

然后在setting.py中设置优先级:

1. DOWNLOADER_MIDDLEWARES = {
2. '你的项目名.middlewares.ProxyMiddleware': 100,
3. }

3.2 spider中设置代理

1. import scrapy
2.
3. class TestSpider(scrapy.Spider):
4. name = 'GGSpider'
5. allowed_domains = ['GG.com']
6. start_urls = ['GG.com/']
7.
8. def start_requests(self):
9. # 账密:
10. # 账密链接赋值给变量
11. entry = '{}-zone-custom:{}@proxy.ipidea.io:2334'.format("帐号", "密码")
12. # api
13. # entry = '{}'.format("api获取的ip代理")
14. # 传参meta迭代下一个方法
15. for url in self.starturl:
16. googleHeaders = {
17. "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
18. "authority": "www.GG.com",
19. "user-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36",
20. }
21. yield scrapy.Request(url,headers=GGHeaders,meta={"proxy":entry})
22.
23. def parse(self, response):
24. print(response.text)

我这里使用的是ipidea的代理,好的代理能帮助你更好的获取数据,高质量低延迟,而且新用户可以白嫖哦!

地址:​​www.ipidea.net​​

如果你要是访问GG的话,访问的过于频繁会出现429警告,建议不要高频访问,适当慢一点。