スクレーパーを構築しようとしていますが、503ブロックエラーが発生しています。私は手動でウェブサイトにアクセスすることができますので、私のIPアドレスはブロックされていません。ユーザーエージェントの切り替えを続けているにもかかわらず、すべての方法でコードを実行できません。時々私は15になることもありますが、時には私は何も得られませんが、それはいつも失敗します。私は自分のコードで何か間違っていることに疑いはありません。私はフィットするようにそれを剃ったが、だから心に留めてください。第三者を使用せずにこれを修正するにはどうすればよいですか?HTTPエラー503のWebスクレーパー:サービスを利用できません
import requests
import urllib2
from urllib2 import urlopen
import random
from contextlib import closing
from bs4 import BeautifulSoup
import ssl
import parser
import time
from time import sleep
def Parser(urls):
randomint = random.randint(0, 2)
randomtime = random.randint(5, 30)
url = "https://www.website.com"
user_agents = [
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)",
"Opera/9.80 (Windows NT 6.1; U; cs) Presto/2.2.15 Version/10.00"
]
index = 0
opener = urllib2.build_opener()
req = opener.addheaders = [('User-agent', user_agents[randomint])]
def ReadUPC():
UPCList = [
'upc',
'upc2',
'upc3',
'upc4',
'etc.'
]
extracted_data = []
for i in UPCList:
urls = "https://www.website.com" + i
randomtime = random.randint(5, 30)
Soup = BeautifulSoup(urlopen(urls), "lxml")
price = Soup.find("span", { "class": "a-size-base a-color-price s-price a-text-bold"})
sleep(randomtime)
randomt = random.randint(5, 15)
print "ref url:", urls
sleep(randomt)
print "Our price:",price
sleep(randomtime)
if __name__ == "__main__":
ReadUPC()
index = index + 1
sleep(10)
554 class HTTPDefaultErrorHandler(BaseHandler):
555 def http_error_default(self, req, fp, code, msg, hdrs):
556 raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
557
558 class HTTPRedirectHandler(BaseHandler):
HTTPError: HTTP Error 503: Service Unavailable
あなたのコードに従うことは不可能です、どうしてライブラリーが混ざっていますか? –
私は試していたことをいくつか切りました。私はエクストラをお詫び申し上げます。 – jstats
なぜpycurl、urllib2、要求とurllibを使用していますか? –