IP Pythonの爬虫類の出会いケースが閉じられた、どのように?

演技はサービスを導入します:

私たちは、多くの場合、通常、通常のクロールデータを行うためのプロセスの最初の爬虫類爬虫類で実行する、すべてのルックスはいいですが、エラーで一杯のお茶が発生しました。

以下のような:403禁止エラー、エラー「あなたのIPアクセス頻度が高すぎる」、または検証コードのうち、私たちが再オープン、その後、入力できるようにするが、しばらく同じような状況の後。

IPサーバは要求の数が単位時間に手紙IPと呼ばれ、一定のしきい値を超えています原因を検出:サイトのような対策で、いくつかの抗登るをとっているため、この現象の理由があります。

爬虫類からの助けシールIPオリバーへのエージェント、ADSLダイヤル剤を払って、ソフトウェアエージェント:このような問題を解決するために、薬のような、便利になりました。

ウェブサイトのテストHTTPリクエストとレスポンスます。http://httpbin.org/

GETアドレス:のhttp://httpbin.org/get

POSTアドレス:のhttp://httpbin.org/post

httpbinこのサイトは、クッキー、IP、ヘッダーやログインの検証など、様々な情報のHTTPリクエストとレスポンスをテストすることができます。

そして、サポートの様々な方法は、POSTおよび他の有用なWeb開発とテストをGET。

これはPython +フラスコに書かれている、それはオープンソースプロジェクトです。オープンソース・アドレスします。https://github.com/Runscope/httpbin

起源の分野におけるリターン情報は、クライアントのIPアドレスである、あなたはIPマスカレード成功したかどうかを判断することができます:

プロキシの設定:

①urllibはプロキシの設定

from urllib.error import URLError
from urllib.request import ProxyHandler, build_opener

proxy = '127.0.0.1:8888'
#需要认证的代理
#proxy = 'username:[email protected]:8888'

#使用ProxyHandler设置代理
proxy_handler = ProxyHandler({
'http': 'http://' + proxy,
'https': 'https://' + proxy
})
#传入参数创建Opener对象
opener = build_opener(proxy_handler)
try:
 response = opener.open('http://httpbin.org/get')
 print(response.read().decode('utf-8'))
except URLError as e:
 print(e.reason)

②は、プロキシの設定を要求します

import requests

proxy = '127.0.0.1:8888'
#需要认证的代理
#proxy = 'username:[email protected]:8888'

proxies = {
'http': 'http://' + proxy,
'https': 'https://' + proxy,
}
try:
 response = requests.get('http://httpbin.org/get', proxies=proxies)
 print(response.text)
except requests.exceptions.ConnectionError as e:
 print('Error', e.args)

③セレンエージェントの使用

PhantomJSを使用して

from selenium import webdriver

service_args = [
'--proxy=127.0.0.1:9743',
'--proxy-type=http',
#'--proxy-auth=username:password' #带认证代理
]

browser = webdriver.PhantomJS(service_args=service_args)
browser.get('http://httpbin.org/get')
print(browser.page_source)
使用的是Chrome

from selenium import webdriver

proxy = '127.0.0.1:9743'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://' + proxy)
chrome = webdriver.Chrome(chrome_options=chrome_options)
chrome.get('http://httpbin.org/get')

④Scrapyでプロキシを使用

ミドルウェアでのダウンローダミドルウェアで#Scrapy

 ...
def process_request(self, request, spider):
 request.meta['proxy'] = 'http://127.0.0.1:9743'
 ...

プロキシIPの無料利用

私たちは、インターネットから無料でプロキシのIPを取得することができます。のような:西とげ

import requests,random

#定义代理池
proxy_list = [
'182.39.6.245:38634',
'115.210.181.31:34301',
'123.161.152.38:23201',
'222.85.5.187:26675',
'123.161.152.31:23127',
]

ランダムにプロキシを選択

proxy = random.choice(proxy_list)

proxies = {
'http': 'http://' + proxy,
'https': 'https://' + proxy,
}
try:
 response = requests.get('http://httpbin.org/get', proxies=proxies)
 print(response.text)
except requests.exceptions.ConnectionError as e:
 print('Error', e.args)

IPの使用するコレクションエージェント
:課金プロキシは、次のような、まだたくさんある
西とげ

報道機関

即効性の

象エージェント

内の要求に有料機関を使用して
インポート要求

プロキシIPプロキシサービスから入手しました

proxy = requests.get("http://tvp.daxiangdaili.com/ip/?tid=559775358931681&num=1").text
proxies = {
'http': 'http://' + proxy,
'https': 'https://' + proxy,
}
try:
 response = requests.get('http://httpbin.org/get', proxies=proxies)
 print(response.text)
except requests.exceptions.ConnectionError as e:
 print('Error', e.args)
公開された38元の記事 ウォンの賞賛1 ビュー2200

おすすめ

転載: blog.csdn.net/wulishinian/article/details/102958687