PythonはIP反爬虫処理方法に基づく--利用可能なエージェントプールを構築する
9248 ワード
目次反IP反爬虫法 コード例 アンチIPアンチ爬虫法
本論文では,IPアンチ爬虫機構に基づくアンチ爬虫法を紹介し,利用可能なエージェントプールを構築する.前期準備、西刺代理アカウントを登録し、専門版代理店を購入する(または公開された利用可能な代理店を直接登ってもよい).なぜ購入をお勧めしますか?公開されているのは確かに使えないことが多いからです.西刺代理サイト:https://www.xicidaili.com/nt/エージェントを購入した後、APIを取得してコピーし、次のコードを実装してエージェントプールを構築します.
コードの例
エージェントプールを構築すると、ランダムにエージェントを選択して爬虫類を作成できます.
本論文では,IPアンチ爬虫機構に基づくアンチ爬虫法を紹介し,利用可能なエージェントプールを構築する.前期準備、西刺代理アカウントを登録し、専門版代理店を購入する(または公開された利用可能な代理店を直接登ってもよい).なぜ購入をお勧めしますか?公開されているのは確かに使えないことが多いからです.西刺代理サイト:https://www.xicidaili.com/nt/エージェントを購入した後、APIを取得してコピーし、次のコードを実装してエージェントプールを構築します.
コードの例
import requests
from lxml import etree
from fake_useragent import UserAgent
# User-Agent
def get_random_ua():
ua = UserAgent()
return ua.random
# API
url = 'API'
# IP
# [{'http':'http://xxxx:xx','https':'https://xxxx:xxx'},]
def get_ip_list():
# user-agent
headers = { 'User-Agent' : get_random_ua() }
# IP
proxies = {
'http': 'http://182.35.81.10:9999',
'https': 'https://182.35.81.10:9999'
}
html = requests.get(url,proxies=proxies,headers=headers).text
#
parse_html = etree.HTML(html)
# r_list: [,]
r_list = parse_html.xpath('//tr')
# , ip port
proxy_list = []
#
for r in r_list[1:]:
ip = r.xpath('./td[2]/text()')[0]
port = r.xpath('./td[3]/text()')[0]
proxy_list.append(
{
'http':'http://{}:{}'.format(ip,port),
'https':'https://{}:{}'.format(ip,port)
}
)
# proxy_list: [{},{},{},{}]
return proxy_list
# , IP
def proxy_pool():
#
proxy_list = get_ip_list()
# IP
useful_proxy = []
#
for proxy in proxy_list:
# proxy: {'http':'http://xxxx:xx'}
headers = {'User-Agent':get_random_ua()}
try:
res = requests.get(
url = 'http://httpbin.org/get',
headers=headers,
proxies = proxy,
timeout = 5
)
print(res.text)
useful_proxy.append(proxy)
except Exception as e:
print('{} '.format(proxy))
continue
return useful_proxy
if __name__ == '__main__':
proxy_pool()
#useful_proxy 。
エージェントプールを構築すると、ランダムにエージェントを選択して爬虫類を作成できます.