ホームページ > バックエンド開発 > Python チュートリアル > Python で urllib2 ライブラリをインストールする方法

Python で urllib2 ライブラリをインストールする方法

步履不停
リリース: 2019-07-29 09:43:45
オリジナル
13355 人が閲覧しました

Python で urllib2 ライブラリをインストールする方法

urllib2 は Python2.7 に付属するモジュールです (ダウンロードする必要はなく、インポートするだけで使用できます)。

urllib2 ライブラリの基本的な使用法

いわゆる Web ページ クローリングでは、URL アドレスで指定されたネットワーク リソースをネットワーク ストリームから読み取り、ローカルに保存します。 。 Python には Web ページのクロールに使用できるライブラリが多数ありますが、まず urllib2 について学習しましょう。

urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用)
urllib2 官方文档:https://docs.python.org/2/library/urllib2.html
urllib2 源码:https://hg.python.org/cpython/file/2.7/Lib/urllib2.py
ログイン後にコピー

urllib2 は、python3.x

urlopen

で urllib.request に変更されました。コードの一部から始めましょう:

# urllib2_urlopen.py
 
# 导入urllib2 库
import urllib2
 
# 向指定的url发送请求,并返回服务器响应的类文件对象
response = urllib2.urlopen("http://www.baidu.com")
 
# 类文件对象支持 文件对象的操作方法,如read()方法读取文件全部内容,返回字符串
html = response.read()
 
# 打印字符串
print html
ログイン後にコピー

書かれた Python コードを実行すると結果が表示されます

Power@PowerMac ~$: python urllib2_urlopen.py
ログイン後にコピー

実際、ブラウザで Baidu のホームページを開き、右クリックして [ソース コードの表示] を選択すると、まさにそのとおりであることがわかります。先ほど印刷したものと同じです。言い換えれば、上記の 4 行のコードは、Baidu のホームページ上のすべてのコードをクロールダウンするのに役立ちました。

基本的な URL リクエストに対応する Python コードは、実際には非常に単純です。

Request

最初の例では、urlopen() のパラメータは URL アドレスです。

ただし、より複雑な操作を実行する必要がある場合は、 HTTP ヘッダーの追加などを行うには、urlopen() のパラメーターとして Request インスタンスを作成する必要があり、アクセスする必要がある URL アドレスは Request インスタンスのパラメーターとして使用されます。

urllib2_request.py

# urllib2_request.py
 
import urllib2
 
# url 作为Request()方法的参数,构造并返回一个Request对象
request = urllib2.Request("http://www.baidu.com")
 
# Request对象作为urlopen()方法的参数,发送给服务器并接收响应
response = urllib2.urlopen(request)
 
html = response.read()
 
print html
ログイン後にコピー

を編集します。実行結果はまったく同じです:

新建Request实例,除了必须要有 url 参数之外,还可以设置另外两个参数:
data(默认空):是伴随 url 提交的数据(比如要post的数据),同时 HTTP 请求将从 "GET"方式 改为 "POST"方式。
headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对。
这两个参数下面会说到。
ログイン後にコピー

User-Agent

ただし、これはurllib2 を使用して Web サイトにリクエストを送信するのは、確かに少し唐突です。どの家にもドアがあるのと同じように、通行人として直接侵入するのは明らかに礼儀正しくありません。さらに、サイトによってはプログラムによる訪問 (人間以外の訪問) を嫌っており、アクセス要求を拒否する場合があります。

しかし、法的アイデンティティを使用して他の人の Web サイトをリクエストする場合、それらは明らかに歓迎されるため、コードにアイデンティティ (いわゆる User-Agent ヘッダー) を追加する必要があります。

ブラウザは、インターネットの世界で認識され、許可されているアイデンティティです。クローラー プログラムを実際のユーザーに近づけたい場合、最初のステップは、認識されたブラウザのふりをすることです。ブラウザーが異なれば、リクエストを送信する際の User-Agent ヘッダーも異なります。 urllib2 のデフォルトの User-Agent ヘッダーは次のとおりです: Python-urllib/x.y (x と y は Python-urllib/2.7 などの Python のメジャー バージョン番号とマイナー バージョン番号です)

#urllib2_useragent.py
 
import urllib2
 
url = "http://www.itcast.cn"
 
#IE 9.0 的 User-Agent,包含在 ua_header里
ua_header = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"} 
 
#  url 连同 headers,一起构造Request请求,这个请求将附带 IE9.0 浏览器的User-Agent
request = urllib2.Request(url, headers = ua_header)
 
# 向服务器发送这个请求
response = urllib2.urlopen(request)
 
html = response.read()
print html
ログイン後にコピー

Addヘッダー情報の詳細

特定のヘッダーを HTTP リクエストに追加して、完全な HTTP リクエスト メッセージを作成します。

Request.add_header() を呼び出して特定のヘッダーを追加/変更したり、Request.get_header() を呼び出して既存のヘッダーを表示したりできます。

特定のヘッダーを追加する

# urllib2_headers.py
 
import urllib2
 
url = "http://www.itcast.cn"
 
#IE 9.0 的 User-Agent
header = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"} 
request = urllib2.Request(url, headers = header)
 
#也可以通过调用Request.add_header() 添加/修改一个特定的header
request.add_header("Connection", "keep-alive")
 
# 也可以通过调用Request.get_header()来查看header信息
# request.get_header(header_name="Connection")
 
response = urllib2.urlopen(req)
 
print response.code     #可以查看响应状态码
html = response.read()
 
print html
ログイン後にコピー

ユーザー エージェントをランダムに追加/変更する

# urllib2_add_headers.py
 
import urllib2
import random
 
url = "http://www.itcast.cn"
 
ua_list = [
    "Mozilla/5.0 (Windows NT 6.1; ) Apple.... ",
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0)... ",
    "Mozilla/5.0 (Macintosh; U; PPC Mac OS X.... ",
    "Mozilla/5.0 (Macintosh; Intel Mac OS... "
]
 
user_agent = random.choice(ua_list)
 
request = urllib2.Request(url)
 
#也可以通过调用Request.add_header() 添加/修改一个特定的header
request.add_header("User-Agent", user_agent)
 
# 第一个字母大写,后面的全部小写
request.get_header("User-agent")
 
response = urllib2.urlopen(req)
 
html = response.read()
print html
ログイン後にコピー

関連チュートリアルの推奨事項 : Python ビデオ チュートリアル

以上がPython で urllib2 ライブラリをインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート