400エラーは、サーバーがあなたの要求(例えば、不正な構文)を理解できないことを意味します。つまり、開発者がどのステータスコードを返そうとしているのか、残念ながら誰もが意図した意味に厳密に従うわけではありません。
HTTPステータスコードの詳細については、pageをご覧ください。
ユーザエージェントを設定する方法に関して: ユーザエージェントはリクエストヘッダに設定され、基本的にリクエストを行うクライアントを定義します。ここに認識されたUser Agentsのリストがあります。 urllib
ではなくurllib2
を使用する必要がありますが、urllib2
も組み込みパッケージです。 getBuilding
関数を更新して、そのモジュールを使用してヘッダを設定する方法を説明します。しかし、私はrequestsライブラリをチェックアウトすることをお勧めします。私はそれがスーパーストレートであることが分かり、それは非常に採用/サポートされています。
パイソン2:
from urllib2 import Request, urlopen
def getBuilding(link):
q = Request(link)
q.add_header('User-Agent', 'Mozilla/5.0')
r = urlopen(q).read()
soup = BeautifulSoup(r, "html.parser")
print(soup.find("b",text="KEYWORDS IM SEARCHING FOR GO HERE:").find_next("td").text)
のPython 3:
from urllib.request import Request, urlopen
def getBuilding(link):
q = Request(link)
q.add_header('User-Agent', 'Mozilla/5.0')
r = urlopen(q).read()
soup = BeautifulSoup(r, "html.parser")
print(soup.find("b",text="KEYWORDS IM SEARCHING FOR GO HERE:").find_next("td").text)
注:パイソンV2およびV3との間の唯一の違いは、インポートステートメントです。
コードを単独で実行したという事実は、サーバーがユーザーエージェントだけに基づいて要求を停止していることを疑います。可能性が高いのは、クライアントのレート制限やリクエストの構築方法のバグです...あなたのリンクの実際のコードとファイルのサンプル行を入れてください。 –
明日の朝に私はあなたに戻ってきます! – Harrison