PythonのScrapy爬虫実戦--サイトの逆登りを迂回

1569 ワード

1、ランダムUAの設定
修正py
from fake_useragent import UserAgent

class RandomUserAgentMiddleware(object):
    def process_request(self, request, spider):
        ua = UserAgent()
        request.headers['User-Agent'] = ua.random

修正するpy
# Enable or disable downloader middlewares
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
DOWNLOADER_MIDDLEWARES = {
 # 'csdn_xila.middlewares.CsdnXilaDownloaderMiddleware': 543,
   'scrapy_test.middlewares.RandomUserAgentMiddleware': 543,
}

2、IPエージェントプールの設置
テストWebサイト:http://icanhazip.comWebサイトは、プロキシipが正常に設定されているかどうかを確認するために、現在要求されているipアドレスを返すことができます.
class ProxyMiddleware(object):
    def process_request(self, request, spider):
        request.meta["proxy"] = "http://" +   ip(    )

修正するpy
# Enable or disable downloader middlewares
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
DOWNLOADER_MIDDLEWARES = {
   # 'csdn_xila.middlewares.CsdnXilaDownloaderMiddleware': 543,
    'csdn_xila.middlewares.RandomUserAgentMiddleware': 543,
    'csdn_xila.middlewares.ProxyMiddleware': 542,
}

ここではオープンソースの無料ipエージェントプールをお勧めします.もちろん、これはテストを学ぶためのものです.需要量が大きいのは、各エージェントipプラットフォームに行って買いましょう.
https://github.com/jhao104/proxy_pool
3、referの追加
default_headers = {
            'referer': 'https://www.baidu.com/',
        }

皆さん、伝言討論を歓迎します.三人でいいです.必ず私の先生がいます.